How to differentiate a Floor with an Opening or a Floor with Complex Boundary

How to differentiate a Floor with an Opening or a Floor with Complex Boundary

Anonymous
Not applicable
1,183 Views
6 Replies
Message 1 of 7

How to differentiate a Floor with an Opening or a Floor with Complex Boundary

Anonymous
Not applicable

I need to differentiate two floors with holes.

FloorA is a floor which has an Opening Element.

qi-lu_1-1587013022285.png Edit Boundry of FloorA: qi-lu_2-1587013044725.png

 

FloorB is a floor has complex multiply boundaries.

 Edit Boundry of FloorB:qi-lu_0-1587012952136.png

 

Are there any API I can use the tell the difference between these 2 floors only by the Floor Members, Floor Methods or Floor Properties?

 

I have already get the floor's outer boundary by the Face.EdgeLoops.

And I have already get the FloorA's Opening's XYZ (pntStart and pntEnd) by BoundaryCurves or BoundaryRect.

 

But FloorB's hole, it is not an Element in Revit.

 

Thank you in advance if you have any good suggestion or please share your ideas with us!

 

 

 

 

0 Likes
Accepted solutions (1)
1,184 Views
6 Replies
Replies (6)
Message 2 of 7

TripleM-Dev.net
Advisor
Advisor

Hi,

 

There can be different causes for the opening:

- Cut by a Void family (see InstanceVoidCutUtils.GetCuttingVoidInstances)

 

- Cut by hosted family (see the builtinparameter HOST_ID_PARAM of the hosted family, use ParameterValueProvider with FilteredElementCollector to find it, or use the Host Property, from the Familyinstance)

 

- Cut by another floor (not sure) (Join Relation, there's a Util for this to: JoinGeometryUtils Class )

 

- Cut by Shaft (If the shaft even intersects the floor a little the floor will be cut, so a FilteredElementCollector with WherePasses(ShaftSolid) would do the trick)

 

- Cut by Face (this is the one you're interested in ?), It's a opening element, and also has a Host property Opening Host Property , doesn't see to have a parameter equivalent for it, so only the property

 

Hope it points you in the right direction

- Michel

0 Likes
Message 4 of 7

Anonymous
Not applicable

Thank you Jeremy for the sharing.

However, I am not trying to create the floor.

What I want to do is to find the FloorB from 2 Floors.

 

FloorB has a hole created by Edit Boundary.

FloorA has an Opening which was cut By Face.

 

0 Likes
Message 5 of 7

Anonymous
Not applicable

So the real problem is:

What is the difference between the hole of floors created by Edit Boundary and by Opening cut by Face?

Can I tell it from the Floor Class API? 

0 Likes
Message 6 of 7

TripleM-Dev.net
Advisor
Advisor
Accepted solution

Hi,

 

I don't think you can determine it from the Curveloops themself.

See my earlier post and inspect the floor element itself.

From that the Curveloops must be compared to the Cut elements curve(s) (whatever they are), if none match it's a inner boundary loop from the floor sketch itself.

 

0 Likes
Message 7 of 7

Anonymous
Not applicable

Thank you for the reply.

I will try it.

0 Likes