My Monster HVAC Dyn

Hi everybody!

I was posting somewhat regularly here last year, getting my feet wet with Dynamo. (Armorsol and a few others were a huge help!) I posted here: http://www.revitforum.org/dynamo-bim...lculation.html about a DYN that I was working on that helped to automate the ASHRAE 62.1 Ventilation Rate Procedure. Since then, as my slow periods at work have permitted, I've been tinkering with it and adding onto it and thought that I'd share what I've come up with.

It started out as a tool intended to gather Space and HVAC Zone data and push it over to the VAV boxes, where it could be scheduled. After I got that to work, I started adding more and more features. Over the last year, I've ended up with one monster definition that does many of the things that I wish Revit would have done out-of-the-box.

In a nutshell, I start by taking the Element IDs of the Mechanical Equipment serving each HVAC Zone (usually a VAV Terminal Unit) and assign them to a Project Parameter I've added to the HVAC Zones. (Unfortunately, this is a manual process that has to occurr in Revit, but it can go quickly thanks to the Manage > Element ID command.) The Dynamo definition then basically performs a "VLOOKUP" using String.IndexOf, IndexOf, and List.GetItemAtIndex nodes in order to search for each VAV's Element ID in the list of "Assigned Mechanical Equipment IDs" from the HVAC Zones. A list of index numbers is generated, which the List.GetItemAtIndex node then uses to put the HVAC Zone Elements in an order that matches the order of the list of VAVs. (This "lookup" function will allow multiple sensors like Humidistats, CO2 Sensors, and averaging Thermostats to be assigned to the same box.) From there, I can use Element.SetParameterByName to apply the VAV names to the HVAC Zones correctly. I was previously pushing the data out to Excel, performing the VLOOKUP, and then bringing it back, which was creating a lot of recursion problems. Figuring out how to do this inside of Dynamo was VERY educational.

I'm also doing all of the above with Thermostats. The result is when I change the Mark value at the VAV box, the Name of the HVAC Zone and Thermostat it's assigned to will update as well.

This function also gathers the Space Name, Space Number, Heating Load, Area, Occupancy, and Duct Static Pressure and pushes them to the VAVs, allowing me to schedule these things. Being able to automatically schedule the Room Names and Duct Static Pressure has always been an "impossible dream" of mine! It's also really cool to add Heating Load at a Space and watch the VAV's reheat coil capacity increase automatically (the heating coil is controlled inside the VAV family with conventional parametric formulas, but it uses an "Envelope Heating Load" parameter that I've previously needed to hand-enter. This dyn totals up the heat loads of the rooms served and fills it in automatically. )

Here's the DYN. I've made liberal use of the Note nodes, so hopefully you can start on the right and they'll guide you along. I'd post screenshots, but this thing is so big that that would be a project in and of itself. I tried to organize the clusters of nodes logically.

Hopefully someone out there finds this useful! Feel free to ask questions. I'm far from an expert on this stuff, but the Dynamo interface really encourages a kind of trial-and-error that I've actually had a lot of fun with. Thanks again to everyone here for getting me started with all this stuff!

Could you provide the 'TAI family' of Thermostats, CO2 sensors, Humidistats, etc. that use the custom parameters referenced by your Dyn? The only two included T-stats I could find in Revit were in the Annotation and Building Controls folders, but those don't have any custom params.

Hopefully someone out there finds this useful! Feel free to ask questions. I'm far from an expert on this stuff, but the Dynamo interface really encourages a kind of trial-and-error that I've actually had a lot of fun with. Thanks again to everyone here for getting me started with all this stuff!

Could you explain the specifics of the "TAI Families" objects used to operate your dyn?

They're just dumb, wall-hosted boxes (Communication Devices) that contain the parameters that the DYN is looking for.

To be honest, I've sort of drifted away from getting this project to rename the Thermostats. I've discovered an easier way to do it using HVAC Zones and Schedules inside of Revit. It's not automatic, but it is schedule based. Having the DYN chug through every thermostat was really slowing things down. Feel free to play with it though!

I'm going to rebuild this whole thing at some point, and place the HVAC Zone at the 'top' of the hierarchy instead of the Mechanical Equipment. After trying to put this thing into action, I realized that the Zone should be driving the naming of everything.