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.
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‘.
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.