Geometry.DoesIntersect

Hello,

Geometry.DoesIntersect does not work for me properly. I want to compare floors and rooms. In a small project it does work, but if the number of rooms are above 1000 and floors more (sometimes there are more than one material inside a room) then it doesn’t work.

What I want is to compare Floor geometry centroid to the room boundary. If the floor geometry centroid is inside the room boundary than it should write the room number into the floor.

Can anyone help me?

Ok, now I realised centroid is also a silly idea. If there is a coridor around a room, then the centroid of the coridor floor would be in that room, but it shouldn’t.

When you say doesn’t work propertly… what do you mean by that? I have had problems with cross products with the “doesintersect node.” After thinking about it a while, I realized the reason my computer was hanging up was due to the shear number of calculations it took. What I did was group first by level, then do a cross product within the sublists. It reduced the amount of time it took to process the definition from unreasonable to 5 minutes.
If that is your problem, there is a great post here:
http://dynamobim.org/forums/topic/cross-product-lacing-and-sublists/

If I have 20 rooms and 25 floors in the model than its fine. But when I
have 1000 rooms and 1200 floors in those rooms than the computing time is
12 hours and after ita finished it doesnt give the correct results.

Trying to get the room numbers from a link and write them into floors.

Sounds like the same problem I was having. Try lacing sublists and see if you can get that to work.

I recently done something similar for a stadium. Revit doesn’t like lots of geometry data, especially when it’s solids. You need to get line/points. Try this

Can you derive surfaces from geometries and intersect them? And if I
intersect two surfaces and give tolerance lets say 1 m2 will I get good
results? What if the room has two floor types in it?