Place Space Name and Number of Area Served by VAV into VAV (Mechanical Equipment) Parameter

We need some assistance with a python design script to complete the graph. We have posted our dynamo graph and Revit file for troubleshooting and for others to use as they see fit. It is pretty much 95% complete. We are by no means experts… so the graph could probably be reduced and cleaned up or done a hundred different ways. We are all here to learn :slight_smile: So see attached for our attempt.

We toyed with other options like exporting a revit schedule to excel and modifying the data. Then bring the info back into the VAV boxes. Ideally dynamo will do this all automated hence the design script.

What we would like the graph to do is to write the SPACE name/number to the a parameter SPACES SERVED in the VAV box. We know that Revit can inherently do this in a schedule, kinda. Revit can show the space info that the VAV box is in. Revit is not smart enough to show the spaces served. We used this graph to find the AIR TERMINALS and what SPACES they intersect with. We also determined the SYSTEM NAME of those air terminals. We found the VAV boxes and their SYSTEM NAME. As long as systems are created the air terminals served by the boxes will have the same system name. Now we can populate the SPACE INFO into the vav boxes.

In most cases though the VAV box serves more than one space. We need to figure out how to write a python script to get all space name/numbers that have air terminals with the same system name written to vav box. We ended up with two lists. One with spaces/system names and the other with vav boxes/system names. We need the script to search the spaces/system names and return all space info for that system name. Then move to the next system name. I attached a pdf with images to better explain as well.

This is the revit file to go along with the dynamo file…

Mechanical Equipment - Spaces VAV Serves.dyn (70.7 KB)

Dynamo help.pdf (53.4 KB)

Hi @JMora

Here are some other possible ways to achieve using custom nodes. “Element.Space” is from Rhythm package.


Hi Kulkul!

I like your suggestion of using the Element in Space node. I have been having trouble with the Element.Geometry Node. It errors out when spaces bleed. I am going to replace the Element.Geometry node and see if it works better.

We ended up finding out we have someone in house that knows Python and we completed the Dynamo file. It works pretty good other than the Element.Geometry Node.

I may post the completed file if there is interest. Based on replies this may not be needed by most Mechanical Designers. Maybe they like to fill in the space the VAV box serves manually or don’t populate that information at all.

I replaced the node as described above and it is much cleaner and works much quicker. Here is the image of the semi completed Dynamo file.

Compared to the first image in the original post, this is about 20 nodes less. Haha. Thanks for the suggestion of the Element.Space node!

This problem has been on my mind for a long time as well. I finally made some time to create a node that IMO is a really nice solution for this problem. What it does is look at the air terminals and the space numbers of those air terminals. Then traverse the duct system from the air terminal upwards against the flow direction and write the space number into the duct components of the selected category. It keeps writing the parameter until it finds a component that already has a space number (meaning it has arrived at a duct component that’s serving multiple spaces) and then it stops.
I’ve created a custom node for this in my MEPover package. The code in the node might be a bit bloated and can probably be reduced to something more simpler, but it’s working and I’m happy enough with that at the moment :slight_smile:
Hopefully other people will find it useful as well.


Your idea is very similar to ours. I like the the concept of the node you created. I will definitely have to check it out. I will let you know how it works out.

I see from your screen shot this is a box serving a single space. For our graph we want it to gather all spaces (names/numbers) that the box is serving and concatenate them into one parameter.

I recently worked on a dynamo graph that takes the vav box tag (ex V-2-15) information and writes to the system name. This is not typically shown on documents but it keeps your systems clean in Revit. It allows you to click on any duct and know what unit it is served by by looking at the system name.

I have thought about concatenating the space numbers into the parameter as I can see the value in that as well, but this seemed like a logical first step to me. I think I’ll add that node soon where it will concatenate the space numbers into the parameter for every component it enounters. Shouldn’t be too much of a change in the code.

@JMora Trying to do this and seeing if you can provide the python node that you had created so we can replicate your script. Also curious if you had success/failure with this over the last 4 years.