Revit duct equipment

I understand what you’re saying but can you help me create contexts on dynamo with an example?

It doesn’t look like you’ve made any attempt yet yourself. Start by changing the list levels on Room.IsInsideRoom then do the same with Filter.ByBoolMask to match the output. That will make a huge difference.


i tried this but it only detected one air terminal


this is really my last chance i need to finish this job , and here again it is assigning random room numbers as parameters to air terminals in the same wrong way please can you help me
air terminal set parameter mark by room and number.dyn (30.9 KB)

You need to compare each point with each room and then filter each result. This is why you need to use list levels.

It’s no one’s responsibility but your own to get things done on time. We’re happy to help but we can only help show you the way. We’re not here to do your work for you. If you don’t understand something that’s being suggested, ask for clarification, but don’t ask for someone to just show you the result. We can only do so much for you.

1 Like


This does not apply at my current job. I may be using the brn expressions incorrectly. This is my English, I’m sorry about this. I’m just warming up to using dynamo and I got support from you guys. Thank you. I don’t want you to do the job for me. but silly suggestions make people angry, what I’m saying doesn’t apply to you. …
By the way, I got an error, and as you said, when I select and connect the levels in this way, it selects too many points, dynamo takes a really long time to do this.

No worries. Just wanted to make sure we’re on the same page.

What does the error say? What are the inputs to the SetParameter node?


I tried as you said, this time by removing the listall.true node. but it still incorrectly threw the parameters.

1 Like

Room.IsInsideRoom needs to be @L1 so that each point at list level 1 gets compared against the list of rooms. This is a lot of rooms and points to compare so it’s probably going to be a little slow.

Shall I also make other l2 values ​​l1?

Nope. List levels are dependent on the list structure you have and/or want. You want the individual points to run against the whole list of rooms. Then you want each sublist of results filtered by the original list.

I did as you said but it didn’t work, revit was closed as it was. I guess I need to find another solution or redesign the nodes

You may have maxed out your memory with that many rooms/points. This is the trouble with geometry based comparisons.

Again, Room Calculation Point is likely the way to go. You may just need to modify some families if they’re not accurate.

Can I make one last request from you?, Can you describe it with an example of a node? Otherwise I will give up completely. I don’t want to waste any more of your time

An example of what? Room Calculation Point is part of a Family. It’s what Revit uses natively to determine what room or space an object belongs to. If you set that up correctly you can just use a single node (Rhythm has one) to return the room of the elements.

I searched in all sources but I found only one api file. When I enter the family, the room calculation point is active, it is clear where it is, but I could not find how to draw that point with dynamo.

The Room Calculation Point is used to calculate where an element is located (room and/or space) when placed in a model. This allows you some control over relative location, since the element itself may not be placed inside the bounds of the room in some cases. There’s no “drawing” necessary and no Dynamo interaction necessary. This is native Revit functionality.

If the point is setup correctly (in a direction and distance that would give an accurate location), then Revit has already made a connection between the element and its room. The only thing you need Dynamo for at this point is to extract the room form the element properties. You can use the Rhythm nodes (FamilyInstances.Room or FamilyInstances.Space) for that.