I’m trying to sort curtain walls by their orientation. However, it appears that Dynamo is assigning the direction of the normals randomly- some point towards the wall’s interior side, some point towards the exterior (I’ve triple-checked that the curtain walls are all correct in my Revit model). Is there any way to get the Wall.Orientation component to work consistently, like it does with Basic Walls?
Can you provide a simple revit model to test this?
This is a copy paste from the model I’m working in. It shows the lack of relationship between a curtain wall’s normal and the wall’s interior/exterior in revit
Curtain Wall Glitch.rvt (2.9 MB)
here is the Dynamo script I’m using as well:curtain wall areas.dyn (43.0 KB)
These walls have differing normal because they were drawn differently - one goes clockwise, the other goes counter clockwise. Check the start points of the lines and you’ll see what I mean. By the looks of it you made good use of the mirror command when you built this one (kudos - most people skip past that tool now)
Unfortunately, while you’ve flipped the facing orientation to be consistent, this doesn’t actually change the wall the wall is defined. This is a known issue with any means of pulling the facing orientation from the wall itself. See here for a discussion on the Revit API forum:
I’m not a big fan of that method, as it failed far too often in the type of work I used to do (ie: curved curtain walls, which you have a few of).
Best bet may be to place something so you know which direction faces exterior into the family itself. To use the graph below I placed a model line aligned to the corner of the panel, starting from the interior face to the exterior face tracing the thickness of the glass, and just pulled the direction of that line after filtering out the bad data in the initial selection. It’s added geometry but minimally so, with no visible impact on the model elements itself. I suppose you could pull the thickness, get thesolid geometry, and find the first line which matches the thickness length, but that felt like a lot of extra tests which will bog down larger models/datasets.
@johnson Seems like you should be able to use the orientation of panels to determine the curtain wall orientation
CurtainWallOrientation.dyn (13.2 KB)