Dynamo - Push room name data to ceiling components

Hi Guys,

I am a relative novice to Dynamo and new to the forum. I have found a graph by which pushes space data to Revit MEP components located above a ceiling for COBie data.

I am trying to create a similar version which can push room data to the ceiling components but cant quite fathom how to get the graph to work. Any advice would be greatly appreciated.



1 Like


Using a few nodes to create a centerpoint for the ceiling, and lowering it down to make sure it’s inside the room boundaries, use the “RIE.point.SpaceAndRoom” from the RIE package to find its residing room.
For other elements you can also try the “RIE.element.SpaceAndRoom” node and see if you get the correct results. This node depends on the element being a pointbased family, which the ceiling is not.

Try out the “dyn” file attached, and see if it helps. Just change the “Select model elements” with the desired ceiling elements you want the room information for.


elements roomlocation in parameter.dyn (14.9 KB)

1 Like

FamilyInstance.Room node will also make short work of this. I believe it’s in either the Rhythm or clockwork package, though I can’t recall exactly which.

Hi Andre / Jacob,

Thank you for your help on this. When running the script provided by Andre I came across no issues using a very simple test model, however when i run the script on the project model i encounter a null value at the GetParameterByName node. Would the script require a replaceNulls / IgnoreNulls type node to clean the list?

Dave R

It’s in Rhythm. :slightly_smiling_face: Downside here is, it does not work for system families like ceilings. It works with loadable families like casework or furniture.


I tried the Rhythm FamilyInstance.Room node but couldn’t get it to work for the ceilings as you have noted


Yeah. That method is only available for Family Instances.

However, I like using ray bounce for these calculations quite a bit.

And the graph
20180206-raybounceForCeilings.dyn (14.7 KB)


It might happen to need a cleanse, but that will mean that you will not get information inn to all your ceilings.

The Reason for that might be that the point you create is the centerpoints between two corners of the room, which might be outside a room with a particular shape. For example an L-shaped room might create some issues, since the point will probably come outside of the room.

Try getting a point from the face geometry of the ceiling, and lowering it’s Z-value for good measure, that should work. I can try to come with an example when I have the time! :slight_smile:

See attached graph. This should get all rooms for you I believe.

LocateCeilingRoomsAndSpaces.dyn (23.6 KB)


Hi There.

Find problem with this method is it doesn’t work when a ceiling is located anywhere but where the cross of the room is, so for instance i cant get dropped ceiling located at curtain wall edge of a room. is it possible to grab the rooms corners as points an use them as additional ray bounces, of possible grid the room and use grid intersections as ray origins?

Well, I never said that the raybounce example I provided was an “all-inclusive” solution. You can definitely use a raybounce to “shoot” rays any direction you want though.

Here is what you mentioned, given a little thought to implement.

I would say if you need to expand on this further it might be good to go ahead and start a new topic.