Filter Exterior Curtain Wall & get the Room it belongs to

Hello Everyone,
I am trying to filter only the exterior curtain walls and get the Room it belongs to.
With the help of Vikram and Andreas, I was able to do just that with the Doors.
(Topic: Filter Exterior Doors from Interior Doors) and will like to do thesame with the Curtain Walls.
I am trying to apply Andrea’s solution for the doors to use the wall types funktion but don’t really know
how to proceed from here
Big Thanks for the Help here Guys!..

are you trying to find out just the wall type that belongs to the room or geometrical information about the wall just associated with that room.

Hello Arif, Thanks for your answer.
I am trying to get the geometrical Information about the Wall and to which Room it belongs to.
But that just for the exterior Curtain Walls

@Macroperari - you may want to try the following method:

If you want to find the curtain walls through the rooms:

  • Use Room.Boundaries as a starting point
  • Filter out those elements that are not walls (e.g. using Clockwork’s Element.IsOfCategory)
  • Filter the walls according to wall kind (using Clockwork’s Element.Type & WallType.Kind)
  • Now you only have room-bounding curtain walls

If you also need to find panels for each room:

  • Use Clockwork’s Element.Panels to get all panels for each curtain wall (or the built-in CurtainPanel.ByElement if you’re feeling adventurous although that’s slightly buggy: https://github.com/DynamoDS/Dynamo/issues/4128)
  • Since a curtain wall may be a boundary of multiple rooms, you’ll need to filter out those panels that don’t belong to the room
  • Get the location of each panel
  • Project a point towards both sides of the panels (using the curtain wall orientation as a vector)
  • Check for both boints if they’re in the room that gave you the curtain wall (e.g. using Clockwork’s Point.IsInsideRoom)
2 Likes

Thanks a lot Andreas. Will try both methods.

Hi @Macroperari

if the criterion that defines exterior curtain walls is that they are only a boundary to one room, then this workflow should work :

2 Likes

Thanks Mostafa. Will try it out

Hello Mostafa, I have tried it out but got stocked. The Contains node only gives me one True.
Don’t know why…

The lacing of gthat node must be switched to cross product

Hello Mostafa, I don’t really understand what you mean. Can you pls explain again
I have now done it like this…

sorry my revit/dynamo is in french but basically it’s right lick on the node> lacing > cross product. The same way you switched it to longest :slight_smile:

I used that twice in my work flow

Merci Mostafa :slight_smile:
I have tried it but still get thesame results. Maybe something is wromg with my Room.Boundries or my Revit Project

room walls.dyn (15.6 KB)

here’s my .dyn .

One thing that coud compromise this workflow is if a facade wall spans over multiple rooms :

.

It won’t work because it’s a boundary for two rooms, even if the two rooms are on se same side of the wall . Other than that I can’t think of any reason for it not to work .

1 Like

Ja that is what I have


But Iam geting the wall with this workflow
what Iam trying now is to get the Room it belongs to

I’m not sure what you’re using normalize depth for here …
In the script I posted earlier dynamo first gets the rooms each curtain wall is a boundary too, then it filters those that are a boundary to one room only. Those are concidered external (in your case it doesn’t work because your external wall spans over two rooms).
Once dynamo has the exterior curtain walls it gets the rooms they belong to .

also, you have selected the wall category here :


it should be rooms

I used it to check my lists but it functions thesame without the normalize depth. Therefore, it can be ignored.
I already got your Point tha’s why I showed early that it wouldn’t work for me.
But my method does work for me so far in getting the external Curtain Wall
I will try your Method again on another Project
Merci encore Mostafa :slight_smile:

my bad I didn’t see the text before your second image
avec plaisir ! :slight_smile:

Hi Andreas,

Would you mind to elaborate on your last 2 points, i.e. which nodes to use please. Thanks a lot!

  • Project a point towards both sides of the panels (using the curtain wall orientation as a vector)
  • Check for both boints if they’re in the room that gave you the curtain wall (e.g. using Clockwork’s Point.IsInsideRoom)