Dynamo view analysis

3 min read

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.


Leave a Reply

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

Add Revision to sheets

Add revisions to multiple sheets

A simple Dynamo workflow for adding or removing a revision to multiple sheets simultaneously in Revit 2022 or lower.

Create Internal Elevations with Dynamo

Create internal elevations

Generate elevation markers and corresponding internal elevation views using Dynamo based on rooms and their bounding wall’s orientation.

Sync Room Parameters

Sync room parameters

A Dynamo workflow to synchronise instance-based room parameters, such as apartment number, nested within a Revit model group.

Rhino Inside Revit for Dynamo users

Rhino.Inside Revit for Dynamo users

Learn some of the key differences between Dynamo and Rhino.Inside Revit and discover the benefits of migrating certain Dynamo workflows to Rhino.Inside Revit.


© 2023 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.