Honeybee Daylight Simulation

  • Intro
  • Design
  • Model preparation
  • Daylight Factor simulation
  • Point-in-time simulation
  • Annual Daylight simulation
  • Annual Irradiance Simulation
  • Direct Sun Hours Simulation
  • Possible errors and warnings
  • Conclusion
  • Useful Links

Information

Primary software used Grasshopper
Course Honeybee Daylight Simulation
Primary subject Analysis & simulation
Secondary subject Climate analysis
Level Intermediate
Last updated November 27, 2024
Keywords

Responsible

Teachers
Faculty

Honeybee Daylight Simulation 0/10

Honeybee Daylight Simulation link copied

This tutorial describes in detail how to set-up daylight simulations with Honeybee. This tutorial covers various daylight simulations. 

In this tutorial you will learn how to prepare a Honeybee model room for a daylight simulation by assigning the material optical properties, creating a sensor grid and importing the relevant weather data. Daylight simulation can be performed in various ways in Grasshopper. There are five different daylight simulations explained in this tutorial:

  • Daylight factor simulation
  • Point-in-time simulation
  • Annual daylight simulation
  • Annual irradiance simulation
  • Direct sun hours simulation
Overview possible daylight simulation results
Overview possible daylight simulation results

Honeybee Daylight Simulation 1/10

Design link copied

This example refers to a shoebox geometry of an apartment which is on the ground floor of a 2-storeys building. It has a rectangular plan of 10m*10m, and it has a height of 3m.

The apartment has an entrance from the road with an opaque wooden door and has also one operable window facing the street. The window is shaded with wooden horizontal louvres. On the left and right side there are adjacent apartments, but on the back side it is not neighbouring any other apartment or building.

The exterior walls are made of concrete in light grey colour. The slabs are also made of concrete, and they are painted in white colour on the bottom side (ceiling). On the top part (floor), they are covered by timber in a darker colour. The interior walls are made of plywood and covered also in white paint.

Shoebox geometry design overview
Shoebox geometry design overview

Abbreviations:

HB(Honeybee), LB (Ladybug), DF (Daylight Factor), CIE (International Commission of Illumination), CBDM (Climate Based Daylight Modelling).

Exercise file

As a starting point for the Daylight Analysis in this tutorial you will need to have a HB room set-up ready. You can download or create the Grasshopper script and Rhino file from the “Honeybee model set-up” tutorial or use your own design. 

Honeybee Daylight Simulation 2/10

Model preparation link copied

Each time you want to perform a daylight simulation in grasshopper, there are some basic set-up parts needed. First the material optical properties need to be assigned to the HB model. Then a sensor grid needs to be created and the weather data need to be imported. 

Optical material properties

Before following on with the Daylight analysis, you should make sure that the relevant material optical properties are assigned to the faces of your HB model. In the steps that follow you will learn how you can assign optical material properties to the HB model. To do so, first the radiance modifiers per material are created, then the modifier subsets are created per face from which the modifier set is created. Lastly, the modifier set is assigned to the HB model after which you can visualize and check the modifiers. 

For a more accurate Daylight simulation, you should assign the values of the optical properties for each material in the corresponding surfaces. Specifically, you should specify the reflectance and transmittance.

  • Reflectance (for opaque materials), which is a percentage indicating the amount of light that is reflected by the surface when the light falls into it (the higher the reflectance, the more light is reflected).
  • Transmittance (for transparent materials), which is a percentage indicating the amount of light that is transmitted through the window (the higher transmittance, the more light passes through the window.)

Important to note: HB gives the option to specify also other optical parameters, such as roughness and specularity, but since these are mostly useful for visual purposes (renderings) or very specific types of analyses (solar convergence), they will not be used in this phase (they are assigned a zero value).

Radiance modifiers per material

For each material of your project, a different Radiance modifier needs to be created, gathering its optical properties in it. In the HB-Radiance Modifiers you can find the different material categories that you may use. For this tutorial we are only going to use the ‘basic’ modifier for Opaque and Glass materials, however for your specific project you might need other modifier types. 

HB-Radiance
Modifiers
Material modifiers
Material modifiers

In this case an Opaque and Glass modifier is needed that needs two types of input, the material name and the reflectance for opaque materials and transmittance for glass materials. Therefore, a panel and a slider are created besides the material modifier for each material in your project. If you are using the example room of the tutorial use the material properties in the table below. 

Create glass modifier for each window material.

  • Create a glass modifier
HB-Radiance
Modifiers
HB Glass Modifier
  • Define glass material name using a panel and connect to the ‘_name_’ input.
Params
Input
Panel
  • Define transmittance of window using a Number Slider and input to _trans
Params
Input
Number Slider

Create opaque modifier for each opaque material.

  • Create an opaque modifier 
HB-Radiance
Modifiers
HB Opaque Modifier
  • Define opaque material name using a panel and connect to the ‘_name_’ input.
Params
Input
Panel
  • Define reflectance of material using a Number Slider and input to _reflect.
Params
Input
Number Slider

Material properties

 

Table: Material properties example room
Opaque materials
Construction Material name Reflectance
Exterior wall Light Grey concrete 0.35
Interior wall  White paint 0.5
Ceiling White paint 0.7
Shade & doors Light timber 0.35
Floor Dark timber/carpet 0.20
Transparent materials
Construction Material name Transmittance
Window Single glazing  0.87

 

Note: The white paint material used in interior spaces has different reflectance value depending on the surface. Internal walls, for example, are usually given a value of 0.50 to take into account the addition of furniture and decorations. 

For more information on different material properties, a good database of materials and their reflectance values is available here

Modifier Subsets per face type

The second step for assigning the material optical properties to your HB model faces is creating the modifier subsets per face type. To assign the material properties to the corresponding HB faces:

  • Create modifier subset for each face type:
  1. Exterior
  2. HB-Radiance
    Modifiers
    HB Exterior Modifier Subset
  3. Subfaces
  4. HB-Radiance
    Modifiers
    HB Subface Modifier Subset
  5. Interior
  6. HB-Radiance
    Modifiers
    HB Interior Modifier Subset
  7. Shading
  8. HB-Radiance
    Modifiers
    HB Shade Modifier Subset
  • Connect the ‘modifier’ result of each Radiance material modifier to the corresponding face input of each Modifier subset. For this tutorial:
  1. Connect the ‘Dark timber/carpet’ modifier to ‘_exposed_floor_’ (HB Exterior Modifier Subset) and ‘_interior_floor_’ (HB Interior Modifier Subset).
  2. Connect the ‘Light Grey concrete’ modifier to ‘_exterior_wall_’ (HB Exterior Modifier Subset) and ‘_interior_shade_’ (HB Shade Modifier Subset).
  3. Connect the ‘Glass_Window’ modifier to ‘_window_’ and ‘_operable_’ (HB Subface Modifier Subset), so as to apply to both operable and non-operable windows.
  4. Connect the ‘Light timber’ modifier to ‘_exterior_door_’ (HB Subface Modifier Subset) and ‘_exterior_shade_’ (HB Shade Modifier Subset).
  5. Connect the ‘White paint’ modifier to ‘_interior_wall_’, ‘_ceiling_’ (HB Interior Modifier Subset) and ‘_exterior_roof_’ (HB Exterior Modifier Subset).
Modifiers Subsets per face type connected to the material modifier
Modifiers Subsets per face type connected to the material modifier

Important to note: The interior shades in our example refer to the extruded borders of the aperture and, therefore, to the wall thickness of the exterior walls. 

Assign the Modifier Subsets to the HB Room

The third step for assigning the material optical properties to the HB model is to create a modifier set from the modifier subsets and then input the modifier set to the HB room. The HB room and HB model creation should already be created – or copied – from tutorial “Set-up Honeybee room”. 

  • Create a modifier set.
HB-Radiance
Modifiers
HB ModifierSet
  • Connect the result of each Modifier Subset to the respective input of the Modifier Set
  • Give a characteristic name for the Modifier Set you are creating using a panel. In our example, you can write “Room1_Materials” in the panel.
Params
Input
Panel
  • Connect the ‘mod_set’ result of the HB ModifierSet component to the ‘_mod_set_’ input of the HB Room component.
Final Modifier Set & Assign to the HB Room
Final Modifier Set & Assign to the HB Room

Visualize & Check

Finally, you need to visualize the material optical properties of the faces to check if they are correctly assigned. In order to quickly check the attributes that are assigned to each face a HB label face component can be used that displays a label on each face in Rhino 

Visualize & Quick Check of attributes assigned
Visualize & Quick Check of attributes assigned
  • Create a label face component
Honeybee
Visualize
HB Label faces
  • Connect the ‘model’ result from HB Model to the ‘_hb_objs’ input.
  • Create a HB Face Radiance Attributes component. 
HB-Radiance
Basic Properties
HB Face Radiance Attributes
  • Select the modifier attribute to be demonstrated and connect the output to ‘_attribute_’. 

 

Tip: If you want to check other properties of your model you can check the other attributes of the HB Face Radiance Attributes component or use the attributes from the ‘HB Face Attributes’ component. 

Sensor grid

As second step in the preparation of the HB model for a daylight simulation, a sensor grid has to be created for each room in the HB model. With the ‘HB Sensor Grid from Rooms’ component a grid is automatically created inside your room based on a given grid size and distance from the floor. The grid size refers to the size of sensor grid cells. The distance from floor refers to the vertical distance between the sensor grid points and the HB room floor. For this tutorial a grid size of 0.5 meters and a distance from the floor of 0.75 meters is used. Next, the created sensor grid should be assigned to the HB model with the ‘HB Assign Grid and Views’ component. 

  • Create a grid from rooms component.
HB-Radiance
Basic Properties
HB Sensor Grid from Rooms
  • Connect the ‘model’ result from the HB model component to the ‘_rooms’ input.
  • Define grid size using a Number Slider and connect to the ‘_grid_size’ input.
Params
Input
Number Slider 
  • Define distance from floor using a Number Slider and connect to the ‘_dist_floor’ input 
Params
Input
Number Slider
  • Create an HB Assign Grids and Views component.
HB-Radiance
Basic Properties
HB Assign Grids and Views
  • Connect the ‘model’ result from the HB model component to the ‘_model’ input.
  • Connect the ‘grid’ result from the ‘HB Sensor Grid from Rooms’ component to the ‘grids_’ input.

 

Assigning sensor grids to the HB model
Assigning sensor grids to the HB model

Note: In the daylight simulation guidelines a specific requirement can be given for the distance of the grid from the floor. For example, the NEN 17037 states that the simulation should calculate the daylight conditions at desk level in the interior, which corresponds with 0.75 meters. 

Import the Weather data

Finally, it is important to import and load the weather data that correspond to the selected location to perform a daylight simulation. You can import and extract the respective EPW weather data by following the steps in the sections of the “Importing weather files in Ladybug” tutorial. The “Importing weather files in Ladybug” tutorial gives a detailed description on how to import and extract the EPW data for a specific location, specify a time period in a weather file. Additionally in the tutorial you learn to check the quality of the data by plotting the normal radiation graphs for the respective climatic data, as it is important to make sure that the EPW file we are using is of good quality and does not miss any data. In this tutorial the weather data will be extracted for the whole year.

A different type of weather object is needed depending on which daylight simulation you want to run. The Daylight Factor (DF) simulation does not need any weather input, the point in time simulation requires a specific sky condition (e.g. cloudy or sunny) based on the location and a weather data object is needed for the annual daylight, annual irradiance and direct sun hours simulations. To extract the location and wea object from a specific location, the epw file needs to be downloaded with a URL. From this the location can be extracted and the epw file can be converted into a wea object. 

Importing weather data for daylight simulations
Importing weather data for daylight simulations
  • Copy the location specific weather URL from the ‘LB EPWmap’ website
  • Download weather data 
Ladybug
0 :: Import
LB Download Weather
  • Extract location 
Ladybug
0:: Import
LB Import Location
  • Convert ‘epw_file’ to ‘wea’ object 
HB-Radiance
2:: Light Sources
HB Wea from EPW Weather

 

Honeybee Daylight Simulation 3/10

Daylight Factor simulation link copied

The first way to perform a daylight simulation discussed in this tutorial is the Daylight Factor simulation. Here, you will learn what Daylight Factor is, how to create and run this simulation, how to visualize the results and what the guideline requirements are.

What is the Daylight Factor?

The Daylight Factor (DF) gives an indication of how a space performs in the ‘worst case scenario’ of overcast (i.e., very cloudy) sky conditions. Under such conditions, the DF is defined as the ratio between the indoor illuminance recorded at desk height inside a space and the outdoor horizontal illuminance under an unobstructed sky. It is therefore expressed as a percentage value.

The DF simulation uses a standard definition of such sky conditions, called the CIE Standard Overcast sky. This means that the simulation is invariant of the location of the building and the time period, so no weather data will be used as an input in this analysis.

The EN 17037 code for Daylight in Buildings gives requirements for the Daylight Factor. You can compare the acquired values with the acceptable Daylight Factor values related to the location of your project. If you are a TU Delft student, you can find it by logging in with your TU Delft account in the following page.

Create & Run Simulation

To create and run the Daylight Factor simulation you have to create a HB Daylight factor component and input the ‘model’ result of HB Assign Grids and Views. You should pay attention to this, because it would create an error if you connected the ‘model’ result directly from the HB model component! Then you need to create a HB Radiance Parameter component to define the performance settings of the simulation. The recipe type of the radiance parameter should be set to 0, for running a DF simulation. 

For the detail level use 2 (high detail) in this tutorial. For further information on which detail level of radiance parameters you should choose or how you can select customized values for the radiance parameters, check the “HB customized radiance parameters” tutorial.

Lastly, a False Start Toggle is needed to start the simulation. Pay attention to selecting the HB FalseStart toggle when working with simulations. This toggle automatically turns back to False when closing the GH file, to prevent errors when opening the file. 

  • Create a HB Daylight Factor component.
HB-Radiance
Recipes
HB Daylight Factor
  • Connect the ‘model’ result from the HB Assign Grids and Views component to the ‘_model’ input. 
  • Create a HB Radiance Parameter component.
HB-Radiance
Recipes
HB Radiance Parameter
  • Set ‘_recipe_type’ of HB Radiance Parameter to 0 for a DF simulation using a Number Slider.
Params
Input
Number Slider
  • Define ‘_detail_level_’ of analysis, use 2 (high level of detail) for this tutorial using Number Slider.
Params
Input
Number slider
  • Create a False Start Toggle component and connect it to the ‘_run’ input of the HB Daylight Factor component.
Ladybug
Extra
False Start Toggle
  • Double-click the False Start Toggle component in order to set it to ‘True’ and run the simulation.

 

Note: It will take some minutes to run, so do not interrupt the simulation!

Set-up of the Daylight Factor simulation
Set-up of the Daylight Factor simulation

Visualize the results

For easier comprehension of the simulation, you can visualize the results. A very convenient way to visualize the results obtained from any type of Radiance simulation is to create a Spatial Heatmap. A Spatial Heatmap is a 2-dimensional representation of the data per grid point obtained through the simulation. In each point, the corresponding value is represented by a colour.

To create a spatial heatmap for the DF results you can use the LB Spatial Heatmap component and connect the results for the simulation to the values input. The component uses the mesh from the created grid result of ‘HB Sensor Grid from Rooms’ to visualize the results on. Be aware that to visualize any results, you must already have run the simulation. You can use a LB Legend Parameters component to adjust the legend according to your simulation. By browsing your mouse over the different inputs of the LB Legend Parameters component, you can see which are the parameters that you can set each time. Define the graph title and used measurement units in a panel and connect those to the LB Legend Parameters component. 

  • Use a LB Spatial Heatmap component.
Ladybug
Extra
LB Spatial Heatmap
  • Connect the ‘results’ from the HB Daylight Factor simulation component to the ‘_values’ input.
  • Connect the ‘mesh’ result from the HB Sensor Grid from Rooms component to the ‘_mesh’ input.
  • Adjust legend parameters with a LB Legend Parameters component. 
Ladybug
Extra
LB Legend Parameters
  • Define the graph title ‘Daylight Factor’ in a panel, then connect it to the ‘global_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
  • Define the measurement units of the metrics to ‘%’ in a panel. Connect it to the ‘legend_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel

 

Set-up for creating the Daylight Factor Heatmap
Set-up for creating the Daylight Factor Heatmap

Honeybee Daylight Simulation 4/10

Point-in-time simulation link copied

The second simulation method explained in this tutorial is the Point-in-time simulation. In this section you will learn what a Point-in-time simulation is, how to create a sky for the simulation, how to create and run the simulation and finally, how to post-process and visualize the results.

What is a Point-in-Time simulation?

Point-in-time simulations belong to the Sunlight analyses category and are a fundamental companion to the Daylight Factor. As the Daylight Factor tests only cloudy conditions, it does not give any indication about excessive sunlight issues, which are important for a more comprehensive evaluation of a building, especially to assess the design of shading elements.

Note: Sunlight refers only to direct sun, whereas Daylight includes both the direct Sunlight and the indirect ambient Skylight.

Unlike the Daylight factor, the Sunlight access depends, firstly, on the location where the building is placed, since it affects the climate characteristics such as the amount and the angle of sunlight, and, secondly, on the time period for which the simulation is held.

Create the Sky for the simulation

In the Point-in-time simulation it is important to first create the sky parameters for the simulation. The point-in-time Radiance standard CIE sky will be used and set to a sunny day without clouds. Regarding the time points for the analysis, it is typical to select a few specific dates and (solar) times, usually 9:00, 12:00 and 15:00 of the following days:

  • 21st December (winter solstice), when the sun is at its lowest altitude.
  • 21st March or 21st September (equinoxes), when day and night have the same duration.
  • 21st June (summer solstice), when the sun is at its highest altitude.

In this tutorial, we are going to run the simulation for 12.00, 21st of December. However, in order to summarise the annual variation, it is advisable to run the simulation for all the 3 hours and the 3 different characteristic days. 

We also need to define the orientation of the façade. In this example, we are going to set the north vector along the positive direction of Y axis, facing the opposite direction of the aperture normal. Additionally, the CIE sky requires to set the type of the sky. By moving your mouse on top of the CIE sky component inputs which you will create below, you can see the integers related to each different type. In this example, set the type to 0 for a sunny sky with direct sun.

To create the CIE sky for a specific time & day:

Creating the CIE Sky for a specific time & day
Creating the CIE Sky for a specific time & day
  • Create HB CIE Standard Sky component.
HB-Radiance
Light Sources
HB CIE Standard Sky
  • Connect the ‘location’ result from the LB Import EPW component to the ‘_location’ input.
  • Create a Unit Y component and connect the ‘unit vector’ result to the ‘north_’ input.
Vector
Vector
Unit Y
  • Create a Number Slider and set it to 0 in order to set the Sky type.
Params
Input
Number Slider

 

Changing the min/max & number of decimals in a Number Slider
Changing the min/max & number of decimals in a Number Slider
  • Create 3 Number Slider components in order to set the month, day and hour for the simulation. Set the first number slider to 12, the second to 21 and the third to 12 and connect them to the ‘_month_’, ‘_day_’ and ‘_hour_’ inputs respectively.
Params
Input
Number Slider

 

Note: Make sure that you set the minimum and maximum values of the Number Sliders according to the needs every time. For example, double click on the Number Slider of the months’ and set the min to 0 and max to 12.

Create & Run the Point-in-Time Simulation

After you have created the sky for the simulation, to create and run the Point-in-Time Simulation you have to create a HB Point-In-Time Grid-Based component and input the ‘model’ result of HB Assign Grids and Views. You should pay attention to this, because it would create an error if you connected the ‘model’ result directly from the HB model component! Next, set the metric which you want to be computed by the recipe. By moving your mouse on top of the ‘_metric_’ input, you can see the integers related to each different metric. For this example, set the slider to 1 to calculate the Irradiance. Then you need to create a HB Radiance Parameter component to define the performance settings of the simulation. The recipe type of the radiance parameter should be set to 0 for running a Point-in-Time simulation. 

For the detail level use 2 (high detail) in this tutorial. For further information on which detail level of radiance parameters you should choose or how you can select customized values for the radiance parameters, check the “HB customized radiance parameters” tutorial.

To create and run the Point-in-time simulation: 

  • Create an HB Point-In-Time Grid-Based component.
HB-Radiance
Recipes
HB Point-In-Time Grid-Based
  • Connect the ‘model’ result from the HB Assign Grids and Views component to the ‘_model’ input. 
  • Connect the ‘sky’ result from the HB CIE Standard Sky component to the ‘_sky’ input.
  • Create a Number Slider in order to set the metric to 1.
Params
Input
Number Slider
  • Create an HB Radiance Parameter component.
HB-Radiance
Recipes
HB Radiance Parameter
  • Use a Number Slider and set the value to 0 to define the type of recipe.
Params
Input
Number Slider
  • Use a Number Slider and set it to 2 to define the detail level of the analysis.
Params
Input
Number Slider
  • Create a False Start Toggle component and connect it to the ‘_run’ input of the HB Point-In-Time Grid-Based component.
Ladybug
Extra
False Start Toggle
  • Double-click the False Start Toggle component in order to set it to ‘True’ and run the simulation.

 

Set-up of Point-in-Time simulation
Set-up of Point-in-Time simulation

Note: Luminance and radiance indicators are less commonly used for numerical analyses on the plane. Luminance maps are mainly used to represent the field of view and possible glare sources, therefore they will not be included in this phase.

It is advisable to use the Point-in-Time simulations mainly for qualitative results. If you want to get absolute values for illuminance or irradiance, it is advisable to run simulations that cover larger time periods (or even annually) as discussed in the next sections.

Visualize the results

For easier comprehension of the simulation, you can visualize the results. A very convenient way to visualize the results obtained from any type of Radiance simulation is to create a Spatial Heatmap. A Spatial Heatmap is a 2-dimensional representation of the data per grid point obtained through the simulation. In each point, the corresponding value is represented by a colour.

To create a spatial heatmap for the Point-in-Time Irradiance results you can use the LB Spatial Heatmap component and connect the results for the simulation to the values input. The component uses the mesh from the created grid result of ‘HB Sensor Grid from Rooms’ to visualize the results on. Be aware that to visualize any results, you must already have run the simulation. You can use a LB Legend Parameters component to adjust the legend according to your simulation. By browsing your mouse over the different inputs of the LB Legend Parameters component, you can see which are the parameters that you can set each time. Define the graph title and used measurement units in a panel and connect those to the LB Legend Parameters component. 

  • Use a LB Spatial Heatmap component.
Ladybug
Extra
LB Spatial Heatmap
  • Connect the ‘results’ from the HB Point-In-Time Grid-Based component to the ‘_values’ input.
  • Connect the ‘mesh’ result from the HB Sensor Grid from Rooms component to the ‘_mesh’ input.
  • Adjust legend parameters with a LB Legend Parameters component. 
Ladybug
Extra
LB Legend Parameters
  • Define the graph title ‘Point-in-time Irradiance’ in a panel, then connect it to the ‘global_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
  • Define the measurement units of the metrics to ‘W/m2’ in a panel. Connect it to the ‘legend_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
Illuminance Heatmap
Illuminance Heatmap

Note: Regarding the title of the legend, you can check the measurement units for the metric that you are calculating by moving your mouse on top of the ‘results’ of the HB Point-In-Time Grid Based component.

Honeybee Daylight Simulation 5/10

Annual Daylight simulation link copied

The third simulation explained in this tutorial is the Annual Daylight simulation. You will learn how to create and run an Annual Daylight simulation, how to calculate the spatial daylight autonomy and how to visualize and post-process the results.

What is annual daylight

The Annual simulations refer to Daylight, including both the direct Sunlight but also the indirect Skylight conditions. They follow the ‘Daylight Coefficients’ method for performing the simulation and the most commonly used metrics related to them are:

  • Daylight Autonomy (DA): Indicates the percentage of occupied hours in a year during which the indoor illuminance is over a certain threshold
  • Spatial Daylight Autonomy(sDA): indicates the percentage of the analysis grid which satisfies DA requirements for more than 50% of the occupied time
  • Useful Daylight Illuminance (UDI): indicates the percentage of the occupied hours in a year during which the indoor illuminance is within a range of values (e.g., 300 and 3000 lx)

 

Other indicators related to Useful Daylight Illuminance (UDI) are:

  • UDI_low, which reflects the percentage of time that each sensor grid is below the lower threshold of the Useful Daylight Illuminance.
  • UDI_up, which reflects the percentage of time that each sensor grid is above the upper threshold of the Useful Daylight Illuminance.

 

Create & Run the Annual Daylight Simulation

Starting with the creation of the Annual Daylight simulation, you need to create a HB Annual Daylight  component and input the ‘model’ result of HB Assign Grids and Views. You should pay attention to this, because it would create an error if you connected the ‘model’ result directly from the HB model component!   You also need to define the north of the location. In this tutorial, the north vector will be set along the positive direction of the Y axis, facing the opposite direction of the aperture normal. Then you need to create a HB Radiance Parameter component to define the performance settings of the simulation. The recipe type of the radiance parameter should be set to 2 for running an Annual Daylight simulation. 

For the detail level use 2 (high detail) this tutorial. For further information on which detail level of radiance parameters you should choose or how you can select customized values for the radiance parameters, check the “HB customized radiance parameters” tutorial.

To create and run the Annual Daylight Simulation:

  • Create an HB Annual Daylight component.
HB-Radiance
Recipes
HB Annual Daylight
  • Connect the ‘wea’ result from the HB WEA from EPW to the ‘_wea’ input.
  • Connect the ‘model’ result from the HB Assign Grids and Views component to the ‘_model’ input. 
  • Create a Unit Y component and connect the ‘unit vector’ result to the ‘north_’ input.
Vector
Vector
Unit Y
  • Create an HB Radiance Parameter component.
HB-Radiance
Recipes
HB Radiance Parameter
  • Use a Number Slider and set it to 2 to define the type of recipe.
Params
Input
Number Slider
  • Use a Number Slider and set it to 2 to define the detail level of the analysis. 
Params
Input
Number Slider
  • Create a False Start Toggle component and connect it to the ‘_run’ input of the HB Annual Daylight component.
Ladybug
Extra
False Start Toggle
  • Double-click the False Start Toggle component in order to set it to ‘True’ and run the simulation.

 

Annual Daylight Simulation
Annual Daylight Simulation

Annual Daylight Simulation

Default values Annual Daylight Simulation
Default values Annual Daylight Simulation

For each of the daylight simulations you can find additional information and default settings by hovering over the component.  

Note: In the ‘_thresholds_’ input you can change the thresholds used for DA and UDI by following the exact format mentioned when you move your mouse over the ‘_thresholds_’ input. In this tutorial we will use the default values (DA: 300 lx, lower UDI: 100 lx, upper UDI: 3000 lx).

Spatial Daylight Autonomy

Following the previous step of running the Annual Daylight simulation you get results regarding values of the DA, cDA and UDI, as mentioned earlier. You can use the DA values obtained through the Annual Daylight simulation in order to calculate the Spatial Daylight Autonomy by following these steps:

 

Calculating the Spatial Daylight Autonomy
Calculating the Spatial Daylight Autonomy
  • Create an HB Spatial Daylight Autonomy component.
HB-Radiance
Results
HB Spatial Daylight Autonomy
  • Connect the ‘DA’ output of the HB Annual daylight component to ‘_DA’ input.
  • Connect the ‘mesh’ result from the HB Sensor Grid from Rooms component to the ‘mesh_’ input.

 

Note: In the _target_DA input you can set the minimum DA value for which a space can be considered well daylit. In our tutorial we will use the default value (50).

Visualize the results

For easier comprehension of the simulation, you can visualize the results. A very convenient way to visualize the results obtained from any type of Radiance simulation is to create a Spatial Heatmap. A Spatial Heatmap is a 2-dimensional representation of the data per grid point obtained through the simulation. In each point, the corresponding value is represented by a colour.

To create a spatial heatmap for the DA results you can use the LB Spatial Heatmap component and connect the results for the calculated DA to the values input. The component uses the mesh from the created grid result of ‘HB Sensor Grid from Rooms’ to visualize the results on. Be aware that to visualize any results, you must already have run the simulation. You can use a LB Legend Parameters component to adjust the legend according to your simulation. Given that the results from this simulation are percentages (such as DA, UDI), it is useful to set the min and max of the legend to 0 and 100 respectively so that the heatmaps are directly comparable. By browsing your mouse over the different inputs of the LB Legend Parameters component, you can see which are the parameters that you can set each time. Define the graph title and used measurement units in a panel and connect those to the LB Legend Parameters component. 

To create a spatial heatmap for the sDA results you can use the LB Spatial Heatmap component and connect the results for the calculated sDA pass & fail to the values input. The Spatial Daylight Autonomy gives out the results of pass & fail for each value in comparison to the target minimum DA value set in the simulation. Given that the results are either pass or fail, it is useful to set the min and max of the legend to 0 and 1 respectively to create a clear visual.

  • Use a LB Spatial Heatmap component.
Ladybug
Extra
LB Spatial Heatmap
  • Connect the ‘DA’ from the HB Annual Daylight component to the ‘_values’ input.
  • Connect the ‘mesh’ result from the HB Sensor Grid from Rooms component to the ‘_mesh’ input.
  • Adjust legend parameters with a LB Legend Parameters component. 
Ladybug
Extra
LB Legend Parameters
  • Define the graph title ‘Daylight Autonomy’ in a panel, then connect it to the ‘global_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
  • Define the measurement units of the metrics to ‘%’ ( or ‘pass/fail’ for the sDA ) in a panel. Connect it to the ‘legend_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel

 

Annual Daylight Autonomy - Create Heatmap
Annual Daylight Autonomy – Create Heatmap

Following the same steps, with the results of the Annual Daylight simulation you can also find and visualize the UDI adequate range results, UDI_up and UDI,low results. To do that you simply need to connect to the respective results from the HB Annual Daylight component to the ‘_values’ input of the LB Spatial Heatmap component. Set the ‘global_title_’ input according to which result you are visualizing.

Useful Daylight Illuminance Heatmaps
Useful Daylight Illuminance Heatmaps

In the case of the Spatial Daylight Autonomy (sDA) make sure that you connect the ‘pass_fail’ result and NOT the ‘sDA’ result of the HB Spatial Daylight Autonomy component to the ‘_values’ input. This is because the information per grid point is included on the ‘pass_fail’ result.

Spatial Daylight Autonomy - Create Heatmap
Spatial Daylight Autonomy – Create Heatmap

Note: Regarding the sDA Heatmap, given that each point value can be either 0(fail) or 1(pass), the min & max limits of the legend should be set to 0 and 1 respectively. If you do not set at all the max value and none of the grid points meets the DA threshold, Honeybee will automatically set both min & max value to 0. 

Honeybee Daylight Simulation 6/10

Annual Irradiance Simulation link copied

The fourth simulation method in this tutorial is the Annual Irradiance simulation. With Annual Irradiance you can simulate what is the hourly solar irradiance measured at each sensor of your HB model sensor grid. In this section you will learn how to create and run this type of simulation and how to post-process the result.

Annual Irradiance Simulation is more commonly used to simulate over outdoor surfaces, e.g. windows, facades or PV panels. In this example, we will go through the steps of creating and running this simulation for the same HB model as the other simulations, using the interior surface of the floor.

Create & Run the Annual Irradiance Simulation

In this tutorial, the HB Annual Irradiance component will be used for this reason and not the HB Cumulative Radiation, since the approach followed for the calculation is considered to produce more accurate values. First, you need to create a HB Annual Irradiance component and connect it to the WEA object to get the weather data. Then, input the ‘model’ result of HB Assign Grids and Views. You should pay attention to this, because it would create an error if you connected the ‘model’ result directly from the HB model component! Moreover, you need to define the orientation of the design. In this tutorial we are going to set the north vector along the positive direction of Y axis, facing the opposite direction of the aperture normal. 

Note: In general, you should set the north vector according to the north orientation of the location where your building is placed.

Then you need to create a HB Radiance Parameter component to define the performance settings of the simulation. The recipe type of the radiance parameter should be set to 2 for running an Annual Irradiance  simulation.  For the detail level use 2 (high detail) this tutorial. For further information on which detail level of radiance parameters you should choose or how you can select customized values for the radiance parameters, check the “HB custom radiance parameters” tutorial.

To create and run the Annual Irradiance simulation you need to follow these steps: 

  • Create an HB Annual Irradiance component.
HB-Radiance
Recipes
HB Annual Irradiance
  • Connect the ‘wea’ result from the HB WEA from EPW component to the ‘_wea’ input.
  • Connect the ‘model’ result from the HB Assign Grids and Views component to the ‘_model’ input. 
  • Create a Unit Y component and connect the ‘unit vector’ result to the ‘north_’ input.
Vector
Vector
Unit Y
  • Create an HB Radiance Parameter component.
HB-Radiance
Recipes
HB Radiance Parameter
  • Use a Number Slider and set it to 2 to define the type of recipe.
Params
Input
Number Slider
  • Use a Number Slider and set it to 2 to define the detail level of the analysis. 
Params
Input
Number Slider
  • Create a False Start Toggle component and connect it to the ‘_run’ input of the HB Annual Irradiance component.
Ladybug
Extra
False Start Toggle
  • Double-click the False Start Toggle component in order to set it to ‘True’ and run the simulation.
Set-up of the Annual Irradiance simulation
Set-up of the Annual Irradiance simulation

Note: Different values can be produced through this simulation. They correspond to indicators, such as the average irradiance, the cumulative radiation or the highest irradiance values for each sensor over the Wea period. However, the more common indicators for irradiance analysis are the cumulative ones, i.e. the cumulative radiation.

Visualize the results

For easier comprehension of the simulation, you can visualize the results. A very convenient way to visualize the results obtained from any type of Radiance simulation is to create a Spatial Heatmap. A Spatial Heatmap is a 2-dimensional representation of the data per grid point obtained through the simulation. In each point, the corresponding value is represented by a colour.

To create a spatial heatmap for the Annual Irradiance results you can use the LB Spatial Heatmap component and connect the results for the simulation to the values input. The component uses the mesh from the created grid result of ‘HB Sensor Grid from Rooms’ to visualize the results on. Be aware that to visualize any results, you must already have run the simulation. You can use a LB Legend Parameters component to adjust the legend according to your simulation. By browsing your mouse over the different inputs of the LB Legend Parameters component, you can see which are the parameters that you can set each time. Define the graph title and used measurement units in a panel and connect those to the LB Legend Parameters component. 

  • Use a LB Spatial Heatmap component.
Ladybug
Extra
LB Spatial Heatmap
  • Connect the ‘results’ from the HB Point-In-Time Grid-Based component to the ‘_values’ input.
  • Connect the ‘mesh’ result from the HB Sensor Grid from Rooms component to the ‘_mesh’ input.
  • Adjust legend parameters with a LB Legend Parameters component. 
Ladybug
Extra
LB Legend Parameters
  • Define the graph title ‘Cumulative radiation’ in a panel from, then connect it to the ‘global_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
  • Define the measurement units of the metrics to ‘kWh/m2’ in a panel. Connect it to the ‘legend_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
Annual Irradiance Heatmaps
Annual Irradiance Heatmaps

Note: In this case, that the resulting values do not refer to a percentage, there is no need to set the max value of the legend to 100. You should leave the ‘max_’ input empty in order for the program to adjust it based on the resulting values of every iteration.

Honeybee Daylight Simulation 7/10

Direct Sun Hours Simulation link copied

The Direct Sun Hours simulation is the last daylight simulation explained in this tutorial. This simulation refers to the total number of hours that direct sun is received by each grid sensor of the HB model. In this section you will learn how to create and run a Direct Sun Hours simulation and how to post-process the results.

Create & Run the Direct Sun Hours Simulation

To create and run a Direct Sun Hours simulation you first need to create an HB Direct Sun Hours component and connect it to the WEA object to get the weather data. Then, input the ‘model’ result of HB Assign Grids and Views. You should pay attention to this, because it would create an error if you connected the ‘model’ result directly from the HB model component! After that you need to define the orientation of the design. In this tutorial we are going to set the north vector along the positive direction of Y axis, facing the opposite direction of the aperture normal.

The Direct Sun Hours simulation is created with the following steps: 

  • Create an HB Direct Sun Hours component.
HB-Radiance
Recipes
HB Direct Sun Hours
  • Connect the ‘wea’ result from the HB WEA from EPW component to the ‘_wea’ input.
  • Connect the ‘model’ result from the HB Assign Grids and Views component to the ‘_model’ input. 
  • Create a Unit Y component and connect the ‘unit vector’ result to the ‘north_’ input.
Vector
Vector
Unit Y
  • Create a False Start Toggle component and connect it to the ‘_run’ input of the HB Direct Sun Hours component.
Ladybug
Extra
False Start Toggle
  • Double-click the False Start Toggle component in order to set it to ‘True’ and run the simulation.
Set-up of the Direct Sun Hours Simulation
Set-up of the Direct Sun Hours Simulation

Visualize the results

For easier comprehension of the simulation, you can visualize the results. A very convenient way to visualize the results obtained from any type of Radiance simulation is to create a Spatial Heatmap. A Spatial Heatmap is a 2-dimensional representation of the data per grid point obtained through the simulation. In each point, the corresponding value is represented by a colour.

To create a spatial heatmap for the Direct Sun Hours results you can use the LB Spatial Heatmap component and connect the results for the simulation to the values input. The component uses the mesh from the created grid result of ‘HB Sensor Grid from Rooms’ to visualize the results on. Be aware that to visualize any results, you must already have run the simulation. You can use a LB Legend Parameters component to adjust the legend according to your simulation. By browsing your mouse over the different inputs of the LB Legend Parameters component, you can see which are the parameters that you can set each time. Define the graph title and used measurement units in a panel and connect those to the LB Legend Parameters component. 

  • Use a LB Spatial Heatmap component.
Ladybug
Extra
LB Spatial Heatmap
  • Connect the ‘results’ from the HB Direct Sun Hours component to the ‘_values’ input.
  • Connect the ‘mesh’ result from the HB Sensor Grid from Rooms component to the ‘_mesh’ input.
  • Adjust legend parameters with a LB Legend Parameters component. 
Ladybug
Extra
LB Legend Parameters
  • Define the graph title ‘Direct sun hours’ in a panel, then connect it to the ‘global_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
  • Define the measurement units of the metrics to ‘hours’ in a panel. Connect it to the ‘legend_title_’ input of the LB Spatial Heatmap component.
Params
Input
Panel
Direct Sun Hours Heatmaps
Direct Sun Hours Heatmaps

Note: In this case, that the resulting values do not refer to a percentage, there is no need to set the max value of the legend to 100. You should leave the ‘max_’ input empty in order for the program to adjust it based on the resulting values of every iteration.

Honeybee Daylight Simulation 8/10

Possible errors and warnings link copied

When running the daylight simulation, multiple errors or warnings can occur. The solutions of some errors related to Radiance are shown below. Note that another error can occur but could be related to the set-up of the HB model, therefore check the tutorial about the HB model set-up for other error possibilities. Additionally, warnings can appear while running a daylight simulation, which sometimes could be ignored. 

No Radiance installation

Error No Radiance installation
Error No Radiance installation

An error that might occur when you try to run a daylight simulation for the first time or after updating/re-installing Ladybug, is the error: 

‘Solution exception: No Radiance installation was found on this machine’.

It states that the Radiance installation was not found. This has to do with the installation of the Ladybug plug-in. To solve this, manually install the compatible version of radiance for your Ladybug from GitHub. Make sure that when manually installing Radiance you do not change the destination of the installation, otherwise the program might not be able to find the package. 

Failed to collect data

Warning failed to collect data
Warning failed to collect data

An error that might occur when you try to run a daylight simulation for the first time or after updating/re-installing Ladybug, is the error:

‘Input parameter _model failed to collect data!’. 

It states that the Honeybee component did not collect any data to be able to run the simulation. This is a warning that might appear when you open someone else’s GH script. In general, this is a warning you can ignore. If you want this warning to be resolved, you must replace the component. In this case recreate or copy/paste the HB Annual Daylight component, connect again the inputs and it should work properly.  

Honeybee Daylight Simulation 9/10

Conclusion link copied

In this tutorial you learned how to perform a daylight simulation using Ladybug and Honeybee. By reaching the end of the tutorial you are now able to prepare a Honeybee room for a daylight simulation by assigning the material optical properties, creating a sensor grid and importing the relevant weather data. Moreover, you learned how to perform 5 types of daylight simulation – Daylight factor simulation, Point-in-time simulation, Annual daylight simulation, Annual irradiance simulation, Direct sun hours simulation – and post-process their results for better visualization. Following this tutorial, you are ready to perform an energy analysis simulation. 

Final script with all explained daylight simulations
Final script with all explained daylight simulations

Final exercise file

Here you can download the complete Grasshopper script with all 5 daylight simulations. For your own use you can remove the unnececary simulations. 

Download final Grasshopper script daylight simulation
application/zip (ZIP, 377 KB)

Honeybee Daylight Simulation 10/10

Useful Links link copied

Linked tutorials

Previous tutorial within Honeybee analysis explaining the set-up of the room:

Useful tutorials for the Honeybee daylight analysis:

Follow up tutorials

This next tutorial uses the same room set-up and the Honeybee model to create and perform the energy analysis and simulation:

Useful links

Radiance for Ladybug download from github: