SEPP65 solar analysis pt2
After you have done a preliminary SEPP65 solar analysis to test a building’s massing, you can begin to plan out apartment layouts in Revit. Once this is done and the size and location of every living room and balcony is known, it is necessary to undertake a detailed SEPP65 solar access compliance check. In this instance, the analysis is being used to verify compliance as opposed to informing the design process. Due to the limitations of Dynamo, this tutorial will illustrate how to extract Revit rooms for analysis in Grasshopper and Ladybug before pushing the results back into Revit for scheduling.
Firstly, ensure that each apartment and balcony is a Revit room. Ideally these should be numbered logically. For example, the balcony to apartment ‘1.01’ is ‘1.01B’. While this isn’t critical it will help with scheduling once the analysis is complete. You can use the Room.RenumberByModelCurve node to automate this process. Also, delete any unplaced rooms by going into a schedule and deleting rows as necessary.
Next, we’ll use the ‘Room.ExportToRhino’ node from the BVN Dynamo package (v.0.2.6). This node requires three inputs:
- File Path – This should be pointing to a blank Rhino file (*3dm). WARNING: WHEN EXPORTING, THE SCRIPT WILL OVER-WRITE THE RHINO FILE. It may therefore be prudent to set Dynamo to ‘Manual’ instead of ‘Automatic’ and ensure that you write to a blank document.
- LayerName – This is the name of the layer that will be created in the Rhino file.
- Z translation – This is an optional input. If applied, the room outlines will be moved in the z-direction. The SEPP65 policy requires that solar access analysis occurs at 1m above the finished floor level.
The ‘Room.ExportToRhino’ node uses the LunchBox and Rhynamo plug-ins developed by Nate Miller. Rooms are first collected using LunchBox and their boundaries extracted and converted into closed polycurves. These are then moved up according to the z translation input. In this instance we are using 1000mm from the finished floor as per the SEPP65 requirements. Rhynamo is then adopted to export the polycurves to Rhino, naming the newly generated Rhino objects the same as the room number it was derived from. Ensure the Rhino file is closed before running the Dynamo script.
Once the rooms have been exported, it is necessary to export the context for the solar access analysis. The easiest way to do this is to setup a 3D view within Revit. Using Visibility Graphics (VG) in conjunction with worksets and filters, turn off any unnecessary geometry. Essentially all we require are party walls, floors and roofs. Extraneous geometry such as planting, furniture, doors and mullions can all be hidden. Windows are effectively transparent and therefore can also be excluded from the analysis. The same also applies to glass balustrades. However, since these are often modelled as a wall, you will need to set up a filter to turn off only the glass balustrade wall types and not all walls. It is critical that the context model be as clean and minimal as possible to minimise computational time later in the workflow. Once you are satisfied with the extent of the context, this can be exported to a *dwg file for import into Rhino:
- In the newly established 3D view, go File > export > CAD formats > *dwg. Hit the ellipsis under setup.
- Under the solids tab, ensure it is set to ‘ACIS solids’. This will allow Rhino to import breps opposed to a mesh. This will allow any errors or anomalies to be easily cleaned up in Rhino.
- Import the *dwg file into Rhino. The context should be positioned with the same coordinate system. Explode any blocks and merge all the context onto a single layer.
Since the ‘Room.ExportToRhino’ node generated polycurves named according to the room number it originated from, a simple Grasshopper script can be used to convert the polycurves to planar surfaces, maintaining the naming convention.
This is easily done using Elefront. Note that you will need to graft the curves first as the boundary surface command reorders curves and therefore effects the data tree (refer here for more info). Remember to flatten the lists once the surfaces have been created. From here, we can bake the surfaces and use these as the input for our Ladybug analysis. In theory this step should be possible in Dynamo. However, there is currently a bug within Rhynamo which means that when exporting the Rhino file, the resultant surfaces follow the bounding box and not the actual room outline.
Now that we that the context and the analysis surfaces, we can run a simple Ladybug sunlight hours analysis to find the complying apartments. The results of this process are visualised via a duotone mesh. However, in order to evaluate if we meet the 70% compliance requirement, we need to be able to schedule the results. This can be achieved by exporting the results to Excel using Lunchbox. From there we can use Dynamo (or BIMLink) to override dedicated SEPP65 shared parameters.
In order to do this, use the ‘Room.SetSepp65Parameter’ node found in the BVN Dynamo package (v 0.2.6). The only input required is the file path of the Excel file which lists all the complying apartments. The Dynamo script will reset all the rooms in the project to ‘False’ before changing only those rooms that comply to ‘True’. You can then use filters in your Revit schedules to highlight apartments compliance.
For a visual check, set up a colour scheme which is coloured based on the ‘SEPP65_Solar Access 2 Hrs min’ parameter. This colour scheme can then be applied to dedicated floor plans to illustrate solar access compliance.
To see how this methodology can be modified by replacing Rhynamo with Flux, check out this tutorial.