Add room calculation point to MEP accessories (duct/pipe)

Hi @kbrady83

Kevin you need to install custom package called “Springs nodes” from search for a package in Dynamo to get nullgetparameter node.

Thanks for the quick reply, much appreciated!

Hi,

I’ve ran this script & got it working, however, i’m running into a few problems. Not all duct accessories are applying the space name & number (there are more not showing the information than those that are). Some balancing dampers will show the name & number but other dampers in a different space wont show the information. I’ve also noticed that if I copy & paste a duct accessory from one space to another & run the script again, the accessory holds the information of the space it was copied from & not the new information of the space it was copied to.

Does this mean there is an issue with my spaces? How exactly is the duct accessory getting the space information with this script? Any help would be greatly appreciated.

Hi @kbrady83,
Does the spaces reach the ceiling in the room or the floor above? Make sure that the accessories are placed in the space.
If the accessory holds the information, you can make something in the beginning with GetParameterValue and then erase the value (which should be the old space number and name).

Hi @Christian_Vestesen, thanks for the reply. The spaces reach the ceiling in the rooms that don’t hold information & the ones that do have information go to the floor above, I take it this what is causing the problem? The spaces should only go to the ceiling anyhow, do you know how the node/script is able to pick up the space name/number? As you had suggested in your original post re: a room calculation point? Is it possible to have the accessory pick up the space that is directly below it?

Some categories like pipe/duct accessories dont have the calculation point option and also dont report what room/space they are associated with in revit.

There is a revit based solution to this, which is to put a tiny, shared, Mechanical Equipment family in all your duct/pipe-fittings/accessories. Then you create some instance parameters in the mechanical equipment family that are linked to the Type, Description, Model, Size etc of the host family.
That way you can create one schedule of Mechanical Equipment that shows all the different categories of component, and also reports where they are.

If you add some parameters to control the position of the nested Mech Equip family you can set it to be below the ceiling. Or if you have some valves or a duct heater in a corridor, that actually belong to an adjacent room, you can adjust the horizontal position of the Mech Equip family to be in the relevant room.

With this setup you could use dynamo to match the nested mech equip families with thier host families to get the correct room locations.

Hello people,
A bit late to the discussion, but I’ve been struggling with this myself and finally got a solution. I just happened to stumble upon a method in the Revit API that will return the space or room by a given point. I’ve wrapped it up into a custom node and published it in my package MEPover.
You can basically add a room calclucation point to any kind of object now. Just adjust the location of the element and feed it into the node like this:

2 Likes

@T_Pover Great work man!

1 Like

Hi,

im trying this one out at the moment but it seems to take a lot of time to run. (is this normal)
i must include that im running over probably 5000 items.

@David_Pfeiffer Could you please start a new topic showing your complete graph. Thanks!

I’m having a tough time getting the node to read the rooms my points are in.
I’m trying to get all the valves in my project to report the room name and room number they are over.
Am I doing something wrong?

Are you sure your spaces are in the same model and in the specified space? If so: are you sure the new points are in these spaces? Maybe do a check with a point of which you know it is in a space for certain.

I have rooms set up, but do I also need to use spaces for this to work? I noticed that there is a “Room at Point” node, but I don’t know what to put for the “Document = null” input.

If the rooms are in your model then that node should work. Just leave the Document port empty (it’s supposed to work with linked models, but that was a bit of a failure as you would need to supply the linked document’s phase as well).
If it does not work you could also try Clockwork’s Room.AtPointInPhase node which does exactly the same.

1 Like


I cant get this part to work. What am i doing wrong?