I am trying to create a script where I can filter rooms by their name and then get the elevation area of the bounding walls and group the areas by materials.
We are trying to automate our glass/facade ratio calculation as far as possible and if this is possible it would be a huge help. We need to count the areas of the three walls of each of our loggias. Some of those walls are solid and some are glass partitions. Right now the walls are different types of basic walls with either a glass or default wall material.
I am not at all experienced in Dynamo but tried to trial-and-error my way forward and currently have this:
Is it going in the right direction? I am thinking I could somehow extract the bounding walls by filtering the rooms by name (“Loggia”) and then get the material of the extracted walls. And then with lists of bounding walls with different materials get the length of the boundary line of the indivudal walls and then multiply that by the room height to get the areas.
The green rooms are the loggia rooms and the red walls are glass walls in this plan:
As you can see there are a few different scenarios. Some loggias are fully enclosed by glass, some have solid walls on the left side and one has solid walls on both sides.
Instead of calculating the area of each material, consider calculating the area of the room’s boundaries relative to the windows and glazed curtain wall panels.
I need to differentiate between solid walls (calculated as facade) and glass partitions (calculated as openings). How would I achieve this with your method?
By your suggestion, if we look at one room, do you mean that the height difference of the boundary line and the top constraint of the wall is multiplied with the length of the boundary line?
I recently added a node called Room.Finishes to Clockwork - it should make this task a little easier since it reports the room-bounding area of each wall.
That certainly sounds helpful. I assume room-bounding area means the area of just one plane, which is exactly what I want.
09_Loggia_Elevation_Area.dyn (40.4 KB)
So, following your advice I made quite some progress, and have figured out most of the script except for how to multiply the correct boundary curves with the correct wall heights. I have attached my script in this post.
Raum is a shared parameter we have created for the room names. They are for example called RA1 for room 1 and LO1 for loggia 1. So the List.FilterByBoolMask gets all the loggia rooms in our project.
There are two sums because I want two different areas in the end, one for the openings (glass walls, not curtain walls yet) and one for the solid walls. The glass wall only has one wall type, but the solid walls bounding the room can be of four different wall types. Therefore there is only one wall type pushed to the sum that we will calculate as openings, but four wall types pused towards the sum that we will calculate as solid walls.