Honeybee Room set-up

  • Intro
  • Design
  • Geometry Creation Preparations
  • Organising the surfaces/meshes
  • Create HB faces
  • Connecting openings to walls
  • Creating the HB room
  • Creating the HB Model
  • Visualize & check the HB model
  • Conclusion
  • Useful Links

Information

Primary software used Honeybee
Course BKB2WV3 – Digitale Ontwerpomgeving
Primary subject Analysis & simulation
Secondary subject Climate analysis
Level Intermediate
Last updated November 11, 2024
Keywords

Responsible

Teachers
Faculty

Honeybee Room set-up 0/10

Honeybee Room set-up link copied

The exercise aims to:

  • Guide users through the process of conducting daylight and energy analysis using Honeybee.
  • Highlight the important parameter for setting up the analysis geometry.
  • Help students learn how to set-up a basic Honeybee room for simulations.

The techniques discussed in this example can later be applied to simulations for different design models or larger building groups.

Shoebox geometry design with assigned materials
Shoebox geometry design with assigned materials

Honeybee Room set-up 1/10

Design link copied

This example refers to a shoebox geometry and highlights all the important parameters both for setting up the analysis geometry, but also for running the different simulations. Let’s assume 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 neighboring any other apartment or building. The exterior walls are made of concrete in light grey color. The slabs are also made of concrete and they are painted in white color on the bottom side (ceiling). On the top part (floor), they are covered by timber in a darker color. The interior walls are made of plywood and covered also in white paint.

Shoebox geometry design overview
Shoebox geometry design overview

Abbreviations

HB = Honeybee Srf = surface component

Exercise file

In this tutorial, the detailed steps for the creation of a Honeybee room will be explained. You can download the GH-script with the room geometry used in this tutorial here as a starting point of this tutorial.

Download HBRoomSetup_GHscript_01_StartScript
HB Room Setup Grasshopper Start script (ZIP, 14 KB)

Honeybee Room set-up 2/10

Geometry Creation Preparations link copied

In order to run an analysis through Honeybee, you should first convert the volumes that you have already created for your design into a Honeybee model.  This involves importing the created geometry into separate Grasshopper components and organizing them appropriately, in order to have distinct components for walls, openings and shadings. Some important aspects of the openings surfaces creation need to be checked so that they do not obstruct the Honeybee room from running smoothly. Before moving on to using your geometry so as to create the Honeybee model for the analysis, you should pay attention to the following aspects.

Geometry separation

How the Window and Wall surfaces should exist in your file
How the Window and Wall surfaces should exist in your file

Make sure that each of the input Rhino Surfaces or Meshes is a unique entity and that they are not joined together into one big mesh or polysurface. This is important in order to be able to use them separately throughout the script (e.g. to assign different attributes). If you have a solid room/box as input geometry, Explode the created geometry in Rhino before importing the separate surfaces or you can use the Explode component in Grasshopper to separate them.

Surfaces without openings

Example of wall with openings : correct input (left) and incorrect input (right)
Example of wall with openings : correct input (left) and incorrect input (right)

Regarding the windows and doors, you will need to have the openings and the wall faces where the openings are applied to as separate entities. Specifically, the wall surfaces/meshes should always be full, without holes, as if there was no opening in them. Even if in your model has one façade consisting of only glazing, in Honeybee you will firstly use it as if it was a complete wall surface and the glazing will be applied to it in a later stage.

Margin error

In case you have openings (windows or doors) that reach to the boundaries of the respective walls, you will have to make them slightly smaller in order to have a small margin on the outer edges making sure that the whole opening surface is inside the wall.

Margins towards inside on the outer edges

For example, in the example file, although the door normally starts from the bottom of the wall (+0.00) and ends at level +2.15, its height is made a bit smaller so that it still ends at level +2.15, but it starts from level +0.05. If in your model you have more than one edge reaching the wall boundaries, you should leave a margin in all the outer edges.

Closed volume

Error message in case the input volume for the HB model is not closed
Error message in case the input volume for the HB model is not closed

Although each surface/mesh should be separated, it is obligatory that all the input wall, floor and roof ceiling Surfaces or Meshes, if composed together, create a complete closed volume. Otherwise, running the daylight simulation will generate light leaks and result in false results. This is why you will see errors in your script and the Honeybee model will fail to be created.

Honeybee Room set-up 3/10

Organising the surfaces/meshes link copied

In Grasshopper, all the surfaces/meshes created in the Rhino model need to be grouped based on their type (e.g. exterior or interior, walls that have windows or not). Therefore, create a sperate surface/mesh component the following groups:

 

Table 1: Room surfaces category description

Category

Description

A

Interior wall faces 

(Inner divisions and walls that are adjacent to neighbouring building)

B

Exterior wall faces 

(All the complete wall faces, even the ones having a door/window. Be careful that in the latter case you should assign them full and without the opening holes!)

C

Floor faces

 

D

Roof ceiling faces

 

E

Window faces 

(Only the window surfaces and not the complete wall!)

F

Door faces 

(Only the door surfaces and not the complete wall!)

G

Shadings

 

After you created a Surface component change the name of the surface component to the name of the group. If you have the setting of view on icons, then you can change the view setting of a component to ‘Always draw name’. By doing this, the script will stay organised, and the separate groups of surfaces will be found back easily.

How to give a relevant name to each surface component
How to give a relevant name to each surface component
  • Create 7 surface components
     
Params
Geometry
Surface
  • Change component name
     
RMB
Surface
Change name
  • Change the component view to ‘Always draw name’
     
RMB
Surface
Always draw name
Connect created geometry to surface group
Connect created geometry to surface group

After you created a surface component for each group, import the geometry from Rhino using the RMB to Set one/multiple Surface/Mesh.

  • Import surface type of your model to corresponding category.

Honeybee Room set-up 4/10

Create HB faces link copied

The second step to create the HB model is to first create all separate HB faces. In order to do that, all group categories created in the previous step need to be used as inputs in the appropriate components. These components might be HB face, HB Aperture, HB Shade or HB Door components according to the category.

HB solid faces

For each of the aforementioned A-D categories (Walls / Roof / Floor / Ceilings) create a HB face and add information of the surface type accordingly. Two information streams need to be added to the surface, namely: the face type and the boundary condition. For boundary condition you can choose between:

 

Table 2. Boundary conditions description

Boundary condition

Description

a

Ground

for a floor which is placed right above the ground

b

Outdoors

for exterior walls and roofs

c

Adiabatic

for interior walls and intermediate floors

For each surface type that consists in your design, create a HB face component and define the face type and boundary condition. Then connect all the surfaces that correspond with the face type.

HB solid faces: Walls, Roof, Floor and Ceilings
HB solid faces: Walls, Roof, Floor and Ceilings
  • Add a HB face component for each surface type.
Honeybee
Create
HB face
  • Connect panel with the type description to ‘_type_’.
  • Connect panel with the boundary condition description to ‘_bc_’ input.
  • Connect the respective Surface component created previously to _geo input of the HB face.

Note: Make sure that you use the names exactly as referred to on the component for both the face type and boundary conditions. For face type choose between: Wall, RoofCeiling, Floor. For boundary condition you can choose between Ground, Outdoors, Adiabatic.

HB Window faces

For category E (only window faces) an HB aperture components is used. For window extra information need to be added about operable windows. Write “True” for operable windows, otherwise write “False” in a panel. (In case you have both operable and inoperable windows you need to create 2 different HB Aperture components). Additionally, the wall thickness will be added οn the perimeter of the aperture, accounting as additional shading elements. For this tutorial wall thickness of 0.3 meter is used. If you want to check if your window is modelled correctly you can use the HB_Visualize_All component.  

  • Add an HB aperture.
Honeybee
Create
HB Aperture
  • Connect the “Window faces” Surface component as input to ‘_geo’.
  • Connect panel with operable status to input of ‘operable_’ by Params » Input » Panel
  • Add wall shade to window.
Honeybee
Create
HB Extruded Border Shades
  • Connect the ‘apertures’ result from the HB Apertures component as input to ‘_hb_objs’.
  • Connect slider with wall thickness to _depth.
  • Connect panel with indoor/outdoor description to input of ”indoor_’.
HB opening faces: apertures & border shades
HB opening faces: apertures & border shades

Note: Put the “true” / “false” description of the indoor/outdoor description panel so that the extrusion happens towards the interior as it represents the wall thickness.

The “true” / “false” description indicates on which side, inside or outside of the room, the wall will be extruded. The extrusion of the wall face indicates the depth of the wall where the window opening is, and therefore, it influences the results of the sunlight analysis later on. In the images below, you can see the difference between the 2 settings and how the HB room is composed if you use the “true” indication for the extrusion on the top image or the “false” indication on the bottom image. The “false” indication leads to a result which is incorrect, since the wall depth now looks like a shading instead of what it should be. Therefore, always be careful with the setting you choose. Note: be aware that the true/false setting can be different if you window surface is flipped, therefore, you should always check the border direction.

HB indoor / outdoor window face right/wrong
HB indoor / outdoor window face right/wrong

HB Door faces

For category F (only door faces) an HB door components is used. For doors extra information need to be added about if the door contains glass. In a panel, write “True” for transparent doors and “False” for a solid door.

HB door faces
HB door faces
  • Create a Honeybee Door.
Honeybee
Create
HB Door
  • Connect the “Door faces” Surface component as a ‘_geo’
  • In the ‘glass_’ input, connect a panel with the true/false description of transparent door.

Note: In case that you also have interior doors, you should create a separate component for them.

HB shade faces

For category G (Shades) an HB shade and HB add shade component are needed. If your window has shading then first you need to create a HB shading face and then you need to connect the shading with the corresponding opening(s).

  • Create shading faces.
Honeybee
Create
HB Shade
  • Connect the “Shadings” Srf component as a ‘_geo’
  • Create a Honeybee Add Shad component.
Honeybee
Create
HB Add Shade
  • Connect shade to opening(s) by connecting the ‘_hb_obj’ output from the HB Extrude Border shades to the ‘_hb_obj’ input from HB Add Shade
  • Connect the ‘shades’ result of the HB Shade component in the ‘out_shades_’ or ‘in_shades’ input of HB Add Shade for exterior or interior shades respectively.
HB faces: Shades
HB faces: Shades

Honeybee Room set-up 5/10

Connecting openings to walls link copied

Before composing the room, an important step is to create an HB subface where all openings (window & shades, door) will be assigned onto the correct wall face. Afterwards, the HB room can be created using the faces that compose it. In this step a lot of possible errors can occur if a small mistake is made somewhere or a component is not exactly constructed as per the HB request.

Adding the Doors and Apertures to their respective Wall faces
Adding the Doors and Apertures to their respective Wall faces

Now that the opening HB faces are constructed, they can be assigned to their respective walls HB faces. To do so a HB Add Surface component is created and the wall and openings are inputted.

  • Create a add surface component.
 
Honeybee
Create
HB Add Subface
  • In the ‘_hb_obj’ input, connect the ‘faces’ result of the HB face component related to the ‘Exterior wall faces’.
  • In the ‘_sub_faces’ input, connect all the ‘hb_obj’ or ‘doors’ result of the HB Add Shade or HB Door component respectively.

Note: If your model does not have shading use the ‘hb_obj’ result of the HB Extruded Border Shades as input for the ‘_sub_faces’ in the HB Add surface component. If shades are applied to an aperture, you should connect to the ‘_sub_faces’ input, the ‘hb_obj’ result of the HB Add Shade component that includes both the apertures and the shading.

Possible errors while using HB Add Subface

In case you run into a problem check the following 4 most common errors that occur while using HB Add Subface. A very frequent error message that may show up when connecting the inputs to the ‘HB Add Subface’ component is that:

“The following subfaces were not matched with any Parent face.”

  If this is the case:

  1. Check that for each opening that you have connected as an input on the ‘_sub_faces’, there is the respective FULL wall surface connected as an input on the ‘_hb_obj’ input.
  2. Make sure that both ‘_hb_obj’ input and ‘_sub_faces’ are flattened (right click on the input » Flatten).
  3. In case you have openings (windows or doors) that reach to the boundaries of the respective walls, make sure you have a small margin on the outer edges as the whole opening surface needs to be inside the wall.
  4. If the other steps still do not solve the problem, it may be the case that there is a slight deviation between the wall plane and the window reference plane. (Maybe it is so small that you do not realize.) You can project the opening surface to its respective wall surface and connect the ‘Geometry’ result in the HB Aperture or HB Door component. In this case, make sure that you apply on the ‘Plane’ input of the Project component only the wall where you want the opening to be projected!
Projecting the Opening to the Wall Face
Projecting the Opening to the Wall Face
  • Project opening on wall.
Transform
Affine
Project
  • Input the respective wall and opening(s) in the Project component
  • Use projection geometry as input for _geo in the HB Aperture component

Honeybee Room set-up 6/10

Creating the HB room link copied

Now, the HB room will be created from the HB faces that compose it. To do so, a HB Room component is used where all the created HB faces or HB Add subface objects are inputted. In our example the result of the ‘hb_obj’ from HB Add subface contains all the Exterior walls connected with their respective openings and shades. In case you have created a different HB Add Subface component for applying interior doors, you should connect that to the HB Room component and not the ‘faces’ from the HB Face component related to interior walls. In this step also a characteristic name for the room you are creating can be given.

  • Create a Honeybee Room.
Honeybee
Create
HB Room
  • In the ‘_faces’ input, connect the ‘faces’ result of the HB Face components related to the Interior walls, Floor and Roof/ceiling. And add the ‘hb_obj’ result of the HB Add Subfaces
  • Connect a panel with a room name.
Composing the HB faces into a HB Room
Composing the HB faces into a HB Room

Possible errors while creating a HB room

While creating a HB Room several errors can occur. Be aware of the following points:

  1. Do NOT connect as input the ‘apertures’ result (from the initial HB Apertures component) or the ‘hb_obj’ result of the HB Extruded Border Shades component as input for the HB Room component.
  2. In case you have interior doors, you should create another HB Add Subface component, where you will apply them to the interior wall faces.
  3. Make sure that every face is connected only once to the HB Room component! Do not connect again the Exterior Wall faces, Window or Door faces or Shadings. They are all included in the hb_obj from the HB Add Subface command!
  4. Make sure that no face is missing and the Honeybee room you are creating is a closed volume. The HB Room command is going to create an error if the room faces in total are not creating a closed volume.

Honeybee Room set-up 7/10

Creating the HB Model link copied

When the HB Room is created the Grasshopper script is ready to create the complete HB Model. The HB Model components is used, whereas the HB Room output ‘room’ serves as input. To check the validity of the model you can run a HB Validate Model component. This can prevent errors during next steps while setting up a simulation. To see the result of the check add a panel to the report and examine the report.

Creating the final HB model
Creating the final HB model
  • Create a Room component.
Honeybee
Create
HB Model
  • In the ‘rooms_’ input, add the ‘room’ result from HB Room component
  • Create a Validation check component.
Honeybee
Create
HB Validate Model
  • Add a Boolean toggle and run the validation by double clicking.
Ladybug
Extra
LB False Start Toggle
  • Examine the report in a panel.
Params
Input
Panel

Honeybee Room set-up 8/10

Visualize & check the HB model link copied

Final step of this tutorial is to visualize the HB model we created. Visualizing the HB model allows you to quickly check for errors during the assignment of the face type or the boundary condition. There are 2 different types of visualization that refer to these categories respectively: visualize by type and visualize by boundary condition. Once you checked the model the preparation is done and the HB model is now ready to be plugged in the analysis simulation.   The visualization by type will separate the faces of your model per face type and colour code them. In this way you can check if you connected each surface to the correct HB face type.

  • Create a Honeybee Visualize by type component and connect the ‘model’ result from the HB model component to the ‘hb_objs’ input.
Honeybee
Create
HB Visualize by type
  • Check each surface for type correctness

The visualization by boundary condition will separate the faces of your model per face type and colour code them. In this way you can check if you connected each surface to the correct boundary condition information.

  • Create a Honeybee Visualize by BC component and connect the ‘model’ result from the HB model component to the ‘hb_objs’ input.
Honeybee
Create
HB Visualize by BC
  • Check each surface for type correctness
Visualizing by type or boundary condition
Visualizing by type or boundary condition

Honeybee Room set-up 9/10

Conclusion link copied

You have now learned how to set up an HB room model that can be used for a daylight analysis simulation. This tutorial provided you with the knowledge on how to set up your geometry correctly from Rhino into Grasshopper by preparing and dividing it into separate faces according to type, setting the HB faces accordingly which are then used to compose the HB room and finally, composing the HB model and visualising the model in two ways to check it. Following this tutorial, you are ready to create and perform a daylight analysis simulation.

HB Room set-up final script
HB Room set-up final script

Final script

Below you can download the final Grasshopper script. You can use it for other Honeybee tutorials or connect you own geometry with it and create your own HB Model for simulations.

Download HB Room Set-up Findal Grasshopper Script
Grasshopper (ZIP, 73 KB)

Honeybee Room set-up 10/10

Useful Links link copied

If you want to create a more dynamic room, you can check out the tutorial for a parametric room set-up using HB solid room. The tutorial gives the option to create windows by ratio or by specific dimensions.

Follow-up tutorials

These next two tutorials use this room set-up to create and perform the analysis simulations for daylight and energy. Check the following tutorials: