Dynamo view analysis

3 min read
Share on twitter
Share on linkedin
Share on facebook
Share on email

In this previous tutorial, I demonstrated how to undertake various view analyses in Grasshopper with Ladybug. Some of these analyses can also now be performed in Revit within Dynamo. This tutorial will show you how to create a 2D isovist by creating filled regions and if desired, assigning the fitness of the view to a room parameter in which it is associated.

Isovist applications

One of the simplest methodologies for undertaking a view analysis is to use an isovist. An isovist is the volume of space visible from a given point in space. Isovists are naturally three-dimensional, but they may also be studied in two-dimensions.

Back in June, Nate Miller updated his LunchBox Dynamo Package to include a new isovist node, ‘Intersection.CreateIsovist‘. Furthermore, with the release of Dynamo 1.2.0, there is now the ability to create filled regions with the ‘FilledRegion.ByCurves‘ node.

This enhancement means that not only can isovists be analysed but they can be visualised and documented within a Revit project. This functionality is beneficial for projects where visibility is important, such as urban planning, shopfronts in a retail mall, or patient visibility from a hospital’s nurse station. In this scenario, the ‘fitness’ of the solution can be considered the area of the isovist. The larger the area, the greater the visibility.

Creating an isovist with Dynamo

To simplify the workflow, I have created the ‘FilledRegion.ByIsovist‘ node in the BVN Dynamo package. The script requires an element to define the centre or eye location. I have used a setout point generic annotation family for this. Once the script is complete, this category can then be turned off via visibility graphics if desired.


Next, we need to select the walls which will act as a boundary for the isovist. The easiest way to do this on a floorplate is to select a couple of walls and then isolate by category. This method will allow you to select all the walls by dragging a rectangular window. (Note that you are unable to shift-select multiple elements in Dynamo). The isovist will conform to any window or door openings in the walls.


Once the isovist is created, the geometry is cleaned and rebuilt. A filled region is then generated on the document’s current view using the filled region type defined in the input. The outline of the filled region will be ‘Thin lines’. If you wish to change the outline of the filled region, your best bet is to use the ‘Element.OverrideColorInView‘.

View fitness

The custom node also calculates the total area of the isovist and the room in which the point is located. This value is then written to the room’s parameter as defined in the custom node’s input.

To create a project parameter, go Manage > Settings > Project Parameters and create a new parameter. Ensure it is an ‘Instance’ parameter, the type of parameter is ‘Area’ and it is assigned to the ‘Rooms’ category. I have used the name ‘View Fitness’. The value of this parameter can be considered the fitness of the view analysis and is useful in comparing options.

Share on twitter
Share on linkedin
Share on facebook
Share on email


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Balcony Area and Depth with Dynamo

Min balcony area and depth

Verify a balcony’s minimum area and depth with Dynamo for compliance with the NSW Apartment Design Guide and SEPP65 requirements.

Renumber Balconies

Renumber balconies

A Dynamo workflow to renumber balconies based on their associated apartment room to assist in documentation and compliance checking.


© 2021 Parametric Monkey
Parametric Monkey and the Parametric Monkey logo are trademarks of Parametric Monkey Pty Ltd.


Drop us a message and someone from our team will be in touch with you shortly.


Thank you for your interest. Someone from our team will be in touch soon.


To find out about upcoming public workshops or to organise a private workshop, please submit the following contact form and we’ll be in touch soon.