Reading Adjoining Rooms along Walls

I am new to Dynamo and mostly learning reading on this forum. I have created a workflow to get Dynamo to read from Excel file (matrix) and implement appropriate values in the Acoustics rating of walls. The script is working, but with a glitch which I am not able to fix.
Idea is to have Dynamo read through an excel file, compare the adjacencies along the walls, and implement the appropriate value for Sound Transmission Coefficient. I have used Steamnodes Tool.GetSurroundingElements node to gather information regarding rooms adjoining the walls. Problem is that the script will run fine if only 2 rooms on either side of wall are detected but for some walls I am getting more than 2 rooms (this is after splitting the walls in revit at T junctions).

Highlighted wall in the above is showing 3 rooms adjoining it. The question is can we get rid of the 3rd room (‘d’ in this case) from the list by getting Dynamo to assess the interface area between wall and room?
Thanks in advance for your time and help.


Does this help at all? It gets the rooms that are associated to the walls…

If you need the wall as part of the list, you can use an ‘add to front’ node…



Room Door Area.dyn (8.6 KB)

Thanks Mark for the reply. But I am still getting that extra room listed.

I was planning to get the area of intersection between wall and room and sort out the room that has area less than 5% of the other. Or may be there is another better way to do it.
Anyways, got to learn a way to get rooms without using package. Thanks for that.

Hmm… sorry you are right, it’s that particular situation with a T junction which is the problem… Try this…

I had a go at getting the intersection areas as you suggested but I was getting fails, this method seems more robust…

Room Door Area-1.dyn (17.3 KB)

You could use Room.Boundaries node from Clockwork package.

Thanks, it gives the desired result.

I did think of it earlier but I needed the rooms on either sides to be associated with the wall in order to determine the adjacencies and then query against the excel matrix to determine the correct acoustic value.

Use List.AddItemToFront node.

1 Like

@manishdongaonkar See if this works for you
Uses the midpoint of the wall to check for intersection with rooms, to overcome the T-junction issue
The walls will still need to be split at junctions though
WallAdjacentRooms.dyn (32.2 KB)


Hi Vikram,

That is a very nice solution, I wasn’t aware of Room.CentreBoundary…

When running these kind of exercises, creating a joined Polycurve almost always throws some fails, but that node is very robust!



1 Like

Thanks Vikram, It works.

1 Like