Recently I had a scenario where I need to extract the perimeter of an atrium to calculate the smoke extraction requirements. This requirement proved more difficult than at first glance. This tutorial will demonstrate how this can be achieved using filled regions and Dynamo to calculate its perimeter.
The problem
In AutoCAD, one would draw a polyline and extract the length property. However, since Revit doesn’t have polylines, we would need to draw multiple individual lines and then get the sum of all of the lengths. Manually trying to do this is not an option because when selecting multiple objects in Revit, no length parameter will be returned (unless all lines are the same length, but even in this case it wouldn’t be the sum).
Trying to automate the process with Dynamo also proved to be tricky as the atrium wasn’t continuously bounded by a single element, for example, a balustrade. Instead, it was bounded by a curtain wall, columns, walls (balustrades) and stairs. To further complicate things, certain elements were excluded from the calculation process.
Dynamo automation
It was therefore decided that the simplest method to visualise the atrium opening was to create a filled region and use line styles to control which lines to calculate and which to exclude. This method was only possible with Dynamo as Revit is only able to return the area of a filled region, not its perimeter. (Note that if you need to use Dynamo to get the area of a filled region, you can use the ‘Filled Region Area’ node from the Archi-lab package).
The ‘FilledRegion.Perimeter‘ node in the BVN Dynamo Package will return a filled region’s perimeter and will give you the option to filter out a line style from the calculations. The node automatically excludes the <Invisible lines> line style, so the ‘lineStyleToFilter’ input can be used for other styles as required.