When designing apartments, often it is necessary to know the area and dimensions of balconies for planning compliance. However, to make things difficult, these requirements are often based on the apartment’s dwelling type and/or location. This tutorial demonstrates how to automate the compliance process, such as that required by SEPP65 and the Apartment Design Guide, by verifying the minimum balcony area and depth.
Background
Understanding the area and dimensions of an apartment balcony is often required for compliance testing. For example, section 4E of the NSW Apartment Design Guide requires that minimum areas and depths be achieved for private open areas based on the dwelling type:
Dwelling type | Minimum area | Minimum depth |
---|---|---|
Studio apartments | 4m2 | – |
1 bedroom apartments | 8m2 | 2m |
2 bedroom apartments | 10m2 | 2m |
3+ bedroom apartments | 12m2 | 2.4m |
Additionally, there are requirements relating to the minimum balcony depth (1m) that can be counted as contributing to the balcony area. Moreover, a terrace can be provided for apartments at ground level or on a podium, in which case it must have a minimum area of 15m2 and a minimum depth of 3m.
Prerequisites
Before any analyses can be undertaken, it is first necessary to isolate the balconies and terraces. But moreover, we need to find their associated apartment to identify its dwelling type – 1 bed, 2 bed, etc. However, it is not easy to ‘pair’ rooms within Revit. Instead, it is necessary to rely on naming conventions to provide some level of association between elements. The ‘Renumber balconies‘ graph does just this by establishing a naming convention that allows any subsequent graph to quickly and easily re-identify room pairs. As such, before running the graph, ensure that the ‘Renumber Balconies‘ graph has been run.
Minimum balcony area and depth compliance with Dynamo
Our ‘Min balcony area and depth’ Dynamo graph, which is available as part of our Dynamo Package Development service, automates this compliance process. Two shared parameters are needed to store the minimum area compliance and the minimum depth compliance. These parameters should be of type yes/no and assigned to the Room category. In the example below, we’ve used ‘0_Min area comply’ and ‘0_Min depth comply’.
To run the graph:
- Specify the room number parameter. Typically this will be ‘Number’; however, a shared parameter can also be used. If using a shared parameter, it should be of type Text.
- Specify the room parameter to identify the apartments type – 1 bed, 2 bed, etc. Typically this will be ‘Name’; however, a shared parameter can also be used. If using a shared parameter, it should be of type Text.
- Define the balcony and terrace room filters. Only room names that contain this filter will be included.
- Define the various minimum area requirements for the balcony/terrace to comply.
- Specify the shared parameters for the minimum area compliance.
- Specify the Family Type which defines the balcony door. The type should be of the category Curtain Window.
- Define the various minimum depth requirements for the balcony/terrace to comply
- Specify the shared parameters for the minimum depth compliance.
- Define the minimum balcony depth to be counted as contributing to the balcony area.
- Press Play to run the graph.
Computational logic
The graph collects all placed rooms in the model, then filters the rooms based on the room filters, returning only the balcony and terraces rooms. Only rooms with a room number and room name are included. Rooms without a value for these parameters are returned separately. The balcony rooms are then further differentiated based on the associated apartment room parameter – 1 bed, 2 bed, and 3 bed.
Minimum area
The area of the balconies and terraces are then checked against the minimum area requirements. Complying rooms are returned separately, and their minimum area compliance parameter updated to ‘Yes’. If the parameters can not be found, an error is returned. Balconies and terraces that do not meet the minimum area are returned separately and their minimum area compliance parameter updated to ‘No’.
Minimum depth
The room-bounding elements are collected for all balconies and terraces and filtered based on the door family type. The balcony depth is then calculated from the centre point of the door(s). Only the room’s external perimeter is used – any internal islands, such as room bounding columns, are excluded.

If multiple doors open out onto the balcony/terrace, the graph will return the deepest value. This value is then checked against the minimum depth requirements. Complying rooms are returned separately, and their minimum depth compliance parameter updated to ‘Yes’. If the parameters can not be found, an error is returned. Balconies and terraces that do not meet the minimum depth are returned separately and their minimum depth compliance parameter updated to ‘No’.
Limitations
The graph does not consider the minimum balcony depth to be counted as contributing to the balcony area. Instead, the graph flags potentially problematic elements for manual review. Problematic rooms are defined as those rooms with a depth less than the minimum allowable threshold (1m) in front of any door. In this scenario, the user should add room separation lines to remove the area below the threshold and re-run the graph.
Conclusion
The requirements of section 4E of the NSW Apartment Design Guide, which relate to achieving minimum areas and depths of private open areas, means that compliance checking can be a slow and tedious task. However, as this tutorial demonstrates, much of this process can be automated using Dynamo. To find out more about this graph or our Dynamo Package Development service, drop us a line and discover how we can automate your Revit workflows.
2 Comments
Simmi George
How I can get this graph
Paul Wintour
Hi Simmi. This is a paid script. If you would like to know more, including the price, please email me, and I’ll be happy to assist.