Я инженер MEP, и я хочу добавить информацию о пространстве для механического оборудования, принадлежностей воздуховодов и принадлежностей труб над (ограничивающими комнату) потолками.
Моя первая идея состояла в том, чтобы использовать BoundingBoxIntersectsFilter с Outline смодифицированный ClosedShell.GetBoundingBox().Max.Z
из пространства и затем BoundingBoxIntersectsFilter
, чтобы поймать мои элементы.Этот метод работает, но у меня будут проблемы с точностью над пробелами, которые ограничены шестью сторонами.Это из-за того, что Outline только набирает очки.Теперь я думаю, что мне нужно преобразовать мои пробелы в твердую геометрию и изменить значение Z, а затем использовать ElementIntersectsElementFilter
, но я в настоящее время застрял, выясняя, какие методы использовать для изменения геометрии моего пространства.
Возможно, мне нужно использовать GetGeometryObjectFromReference
, но я не совсем понимаю, как использовать Reference
.Я видел get_Geometry
был использован здесь , но мне нужна помощь, как его использовать.В частности, это код, который я не понимаю, как реализовать в коде Python:
foreach( GeometryObject obj in e.Objects )
{
Solid solid = obj as Solid;
if( null != solid )
{
foreach( Face face in solid.Faces )
{
PlanarFace pf = face as PlanarFace;
if( null != pf )
Любой удар в правильном направлении очень ценится!
Kyrre