View analysis

4 min read

Undertaking a view analysis can be a powerful design tool. Sometimes we want to maximise visibility, say from a balcony to a point of interest, while other times we want to minimise the visual impact, say to adjacent or heritage-listed buildings. Below are a few options available to Grasshopper users to undertake a view analysis:

Simple 2D – Isovist

One of the simplest methodologies for conducting 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. Grasshopper has a native isovist component which generates 2-dimensional isovists. Ladybug also has a ‘view rose’; however, I have found this to be less robust. This methodology is best utilised for simple scenarios where 2D resolution is sufficient. For example:

  • Urban planning;
  • Shopfront visibility in a retail mall;
  • Patient visibility from a hospital’s nurse station;
  • Etc.

In this scenario, the ‘fitness’ of the solution can be considered the area of the isovist. The larger the area, the greater the visibility.


Simple 3D – Isovist

To get a more spatial understanding of a view, we can use a 3D isovist. The script below is based on Andrew Heumann’s script. Mainly want we want to do is to create a semi-sphere which will be our ‘skydome’. We then need to subtract any objects which will block the views, that is, the context. It is then just a matter of a simple mesh ray to generate the isovist. In this scenario, the ‘fitness’ of the solution can be considered the volume of the isovist. The larger the volume, the greater the visibility.

Grasshopper_3D Isovist_1600x500

Advanced – Ladybug view analysis

If you want to evaluate views from a surface, say from a façade, Ladybug’s ‘View Analysis’ component is ideal. The component will allow you to run the analysis using either view type or points.

View types

A view type is an integer representing the type of pre-generated view analysis that you would like to conduct:

  • 0 = Horizontal Radial. The percentage of the 360 horizontal view band visible from each test point. Use this to study horizontal views from interior spaces to the outdoors.
  • 1 = Horizontal 60 degree cone of vision. The percentage of the 360 horizontal view band bounded on top and bottom by a 30 degree offset from the horizontal (derived from the human cone of vision). Use this to study views from interior spaces to the outdoors. Note that this will discount the ‘_geometry’ from the calculation and only look at ‘_context’ that blocks the scene.
  • 2 = Spherical. The percentage of the sphere surrounding each of the test points that are not blocked by context geometry. Note that this will discount the ‘_geometry’ from the calculation and only look at ‘_context’ that blocks the scene.
  •  3 = Skyview. The percentage of the sky that is visible from the ‘input _geometry’.

View points

Alternatively, you may have specific points that you want to test the visibility. These points may be points of interest, such as an iconic building, park or sea views. The example below is using 3 points of equal weighting. If the points require different weighting, that is, if some views are more important than others, then enter in relative value into the optional ‘viewPtsWeight’ input. Ladybug will produce a colour-coded mesh based on the number of points visible from each test point.

A legend parameter node must be connected with a low and high bound input to allow for an accurate comparison between options. This setting will ensure that the legend will remain consistent from option to option. Without enabling this, Ladybug will automatically adjust the min/max bounds, which will make comparing options difficult.



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.