Selecting floors with no roof above

Hi there! I’m trying to obtain all the surface area being hit by rain in a building. This means I need to select not only all the roofs but also all the area outside that still belongs to the building (parking lots, grass, etc…). Currently I’m having problems separating the floors that are outside (parking lots and walkways) that need to be counted from the floor levels inside that obviously do not.

Can any one help regarding this?

Is this possible to do in Dynamo?


I had a lot of fun with this and made it snow in my dynamo model :slight_smile:


Raining Roof Here is the DYN File. Enjoy!

THX! Saved me hours of trouble :8 first project i’m doing in dynamo, but I’m liking it soo far… Later I’ll see if its doing everything I need… Anyway, thx in advance!

Had to make a few changes on the creation of the “snow” lines for it intercept both the lowest and highest surface but now that part is running perfectly.

Great! Glad it helped. Hopefully I’ll see you at RTCNA

Let it snow, let it snow, let it snow.

This is awesome. great work @Timon!

@Luis, I am glad you were able to get it to work for your application. In the image I posted it could be expanded to see if there is no roof for a particular distance above and those would be “exposed”.

@John Thanks for the remark!

Hi again! I have been working on some others projects and only now had the chance to dive in this problem again. I noticed that using this code it would only be possible to retrieve the area from the full floor even if it was only hit by the “snow” in a small percentage of its area. I have been trying to separate the floor i two bodies, between the area that is hit by the “snow” and the area that isn’t, in order to then retrieve the area from the body that is actually hit. However I haven’t been sucessful… Any ideas?

Once you have identified the floors that are getting rain, you could use the edges of the upper floor to subtract the area from the edges of the “exterior lower” slab. Have you tried that direction?

Hi Timon, thx for the reply! I actually had alredy solved the problem using that same idea with the curve.extrude and geometry.split nodes… Still, thx for the reply! :slight_smile: