Our last guide about Automating Wall Openings Percentage in Revit caused a lot of reactions and great questions!
The original idea was a proof of concept, with the solution to be adapted to specific cases.
We’ve included the modified script in the MANAGE package.
Watch the video:
Dealing With Complex Fire Compartments
Buildings are complex. They can have multiple compartments for the same walls. Sometimes, the calculated area shouldn’t include a ventilated roof.
Jeff had an interesting comment about it:
You could come up with some Dynamo gymnastics to achieve this in an automated way. But that would likely be complicated and fragile. Splitting the walls only for this workflow to work properly would be crazy and unnecessary.
The solution is to combine the “old-school” filled region drafting technique with the power of a Dynamo script + schedules.
Create an elevation only for this workflow. Then, draw filled regions on top of the walls, for each fire compartment. It is not necessary to remove the openings from this area. Use a colored, transparent fill region like this:
Then, add the “Building Side” parameter (which you can rename to Fire Compartment if you want) to the Detail Items category. Then, assign this parameter to each filled region.
Assign the Building Side Parameter to All Openings
In the original version of the script, assigning the “building side” parameter to openings wasn’t necessary. In this case, it is.
Every single opening must be assigned to the correct “Building Side” (or Fire Compartment). This is more “manual” work, but it is necessary.
Run the Script and Enjoy
With an adapted Dynamo script, the rest is automated! Make sure to read the previous post about this to understand the principles of the generic annotation family.
How to Create the Dynamo Script
Instead of gathering walls, the Dynamo script must now regroup filled regions. In this case, the filled regions are filtered to only keep those with a Building Side value.
Then, you get the sum of filled regions for each building side (or fire compartment). This sum is set to the generic annotation families.
In parallel, get all curtain walls, doors and windows.
Filter and group these elements by the building side.
The doors and windows don’t have an “area” value, while the curtain walls have one. We must put them in separate lists with filtering nodes (thanks, Rhythm).
To get the doors and windows area, we must multiply the height by the width.
The curtain walls are more simple. Extract the area value.
Add the curtain wall area to the doors/windows area.
Meanwhile, extract the generic annotation families and only keep those found for the filled region and the openings.
Finally, set the sum for the wall area and the wall openings.
Complete script:
Too lazy to recreate this script from scratch? Download the complete version along with the Revit sample file. It is part of the MANAGE package for Revit. Good luck.