I'm a MEP engineer and I want to add space information on mechanical equipment, duct accessories and pipe accessories above the (room bounding) ceilings.
My first idea was to use BoundingBoxIntersectsFilter with an Outline with a modified ClosedShell.GetBoundingBox().Max.Z
from the space and then use a BoundingBoxIntersectsFilter
to catch my elements. This method works, but I will have trouble with accuracy above spaces which are note limited to six sides. This is because of the fact than Outline only takes to points. Now, I'm thinking I need to convert my spaces to a solid geometry and modify the Z-value and then use the ElementIntersectsElementFilter
, but I am currently stuck figuring out which methods to use to modify my space geometry.
Maybe I need to use the GetGeometryObjectFromReference
, but I do not really understand how to use Reference
. I've seen get_Geometry
has been used here, but I need help how to use it. Specifically, this is the code I do not understand how to implement in python code:
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 )
Any kick in the right direction is much appreciated!
Kyrre