Getting all the curtain walls joined to a basic wall



I’d like to get the curtain walls embedded into walls to calculate per-room lighting requirements. I can get the walls that bound the room space, but I can’t yet figure out how to get the curtain walls “hosted” (it looks like they are hosted, but they’re ““joined””) in those walls. I tried using the Element.GetJoinedElements node from clockwork and Autodesk.Revit.DB.JoinGeometryUtils.GetJoinedElements from the API but none of them give me the curtain walls.


You asked the walls for their hosted and joined elements. Curtain walls have no geometry (isolate the wall category and you see nothing) so the fact they don’t list with those methods isn’t that surprising when analyzed in depth.

No idea if this would work, but did you try asking the curtain walls for their host and joined elements as well?

If that doesn’t work you may need to do a geometry containment test, but this could take awhile depending on dataset size. Reccomend limiting to one floor at a time for this reason.

Get all glass curtain panels on the level, pull the normal of the interior face of the panel, make a point 3" from the panel By this vector. Pull this point down to the floor level and do a polygon containment test on the room boundaries. Filter the list accordingly and pull the area.


Room.InsertsOfBoundariesByCategory from the “clockwork” package did the job. I think I’ll just make my own c# plugin though, it’s way faster processing-wise.

Thanks for the help.


The solution I stated on the previous post has some problems, when the walls that contain the room extend beyond the faces of the room and there’s elements there, those elements are included too despite them not touching the boundaries.

This erroneous behaviour is reflected on the calculation of curtain walls and windows for the room “Exception”(2), the plugin reports there being three curtain walls and 5 windows, while in reality, I only care about the ones facing the room, corrected it should be 1 curtain wall and 1 window.