I’m trying to get the internal surfaces of a group of walls as a list.
My first approach was to use the node “SelectFaces” from revit and it worked great. However the problem is that you have to select manually one by one the surfaces that you want to get into dynamo and this is quite time consuming specially in large models. That’s why, I tried to use the node “Element.Faces” instead. As an output, I got all the surfaces of each wall but only I’m interested in getting the internal ones. Do you have any recommendations about how this approach could be done? So far, I’ve been checking the revit API and unfortunately the only property attached to surfaces is “IsValidObject” which I can’t use for anything in my case.
Thanks in advanced.
If you can consider introducing a Room the you could use the below workflow…
Thanks a lot for your help. It worked great even though that it’s a little bit a work around. But workflows like this are required when revit api is not power full enough
You can also look at the custom node “Surface.FilterByOrientation”.
Thanks a lot. It’s really exciting to learn how to achieve the same approach in different ways with dynamo
I’ve taken your script to a step further for trying to get the internal faces of the walls with some openings. However I didn’t work as it was supposed.
As you can see the custom node “Surface.FilterByOrientation” works great. It filtered out all the vertical faces both external and internal faces of the walls and the side jamb faces as well. The challenge is coming afterwards to filter interior wall faces out propertly by using “List.FilterByBoolMask” node. As you can see the filtering is working a little bit weird.
Therefore I tried to combine your workflow with Vikram one. As you can see in this scenario with opening is working a little bit better than before. However, I didn’t manage to get rid off the side jambs in the opening.