Intersection of air terminal under duct

Good afternoon-

I’m looking to determine which spaces are served by which pieces of equipment.
The challenge is that in my firm, people like to show air terminals “connected” like below (not physically on the system). If they were connected, I would create a list of systems with the air terminals and VAV serving them.

Since I can’t do that I have been trying to create a bounding box above each air terminal, or the length and height of that air terminal, and 3ft above, and use bimorphnodes’ BoundingBox.GetElementsIntersect to find ductwork above the air terminal. After this I was planning to get the system name from the ductwork, filter it to make sure it’s a system type/size that makes sense and associate the air terminal with a system that way.

I haven’t been able to get BoundingBox.GetElementsIntersect to return anything, which leads me to believe I’m using this node incorrectly, seeing as IsEmpty returns false. Any thoughts would be appreciated



Why would they do this to themselves? Take advantage of the capabilities of BIM already. It’s been two decades! Get with it!!! Ok now that I have gotten that out of my system…

Perhaps getting the location of all terminals, then the geometry of all systems (may need all elements, then all locations of each element, then build a polycurve or some other singular geometry from the collection), and then getting the distance from each terminal to each set of system geometry would be easier. You could then sort the systems by the distances using a List.SortByKey node, get the first item in each sub-list with a List.FirstItem node, and group the terminals by those values with a List.GroupByKey node. Lacing and list levels will matter on all of this.


You can still add those terminals to your system through the Revit UI, just ‘Edit system’ and then add the terminal to your system. Works even of they are not physically connected.


Thanks - this actually seems to work without creating a polyline. I’ll get it going and see how accurate it is

1 Like