HB model not closed when in Rhino it is a closed polysurface


I’m creating an underground space for a project and am using the HB face to define the roof, walls, and floor. But I keep running into an issue where the HB room component states ‘input_faces do not form a closed volume’.

However, when I check manually in Rhino the room does form a closed brep. I think this may be an issue where there are curved elements and the HB planarize component is misaligning the surfaces with one another.

Here is the script:
Indoor_Daylight_Analysis.gh (65.6 KB)

All Honeybee geometry must be planar since the simulation engines only accept planar geometry. When you build a model Face-by-Face like this, the curved Rhino breps get planarized as you convert them to Honeybee Faces. This can cause the whole Room volume to not be closed as you try to put all of these Faces back into one Room.

You can avoid this issue by planarizing all geometry before creating Honeybee Faces using the HB Planarize Brep component.

FYI, you need to use the Planarize Brep on the joined closed Polysurface in order for the solidity to transfer between the curved Brep and the output planarized Brep. I see that you just did this for each individual Face and, in this case, the solidity will not transfer through the planarization process.

Hey Chris,

Thanks for the reply, from my understanding from your reply you can’t planarize a curved room and define the honeybee faces? Since even if you polarise and then explode to select the faces to define the room type to then join the surfaces back together the Honeybee room component will still state it’s not a closed volume.

If that is the case, do you have a solution to do this? as it’s an underground room and I want to define the top of the volume as a roof not a floor like Honeybee thinks it is.

Here is the updated script too.

GH Script: https://drive.google.com/file/d/1N77T20mEZLr0a5Ar19LNaXLFCGC6M5vL/view?usp=sharing

Hi @Adam_Murray272

I tried the file you shared at it worked for me as you can see the image below. All I did was baked the compoent in Rhino and reassigned to brep component and planarised it using the Planarize Brep component mentioned by @chris earlier.

Can you try again and check if its working?


Hi Naga,

Although it does work, when you look at the faces assigned to the model Honeybee thinks the top surface is either a wall or a floor which was why I was originally planning to define the faces myself (the top face should be a roof with four skylights). I’m aware Honeybee is getting confused with the coordinates as it’s a large underground space. However. I haven’t had much luck finding a solution.

I also assume this is why the script can’t receive sunlight on the sensor grid


Can you reshare the last recipe you worked on?

Hey Naga

Sure, here is the updated Script: https://drive.google.com/file/d/10OdfA8NAhvmofrdXAFsTGq_LLqKZJRYv/view?usp=sharing

Dear @Adam_Murray272

Please find the working recipe for your model.

Few points that aided to create this working recipe are -

  1. Use the polyline curve of floor plan to extrude the Brep for Room.
  2. By default the roof boundary condition is being considered as Ground which should be Outdoors. So had to do some jugaad to eradicate the bug.
  3. The skylight shade need to be remodelled in Rhino or Grasshopper again. Use parametric modelling techniques for better model of skylight shades.

Please update your LB version to 1.5 for the recipe to run on your system.


I adjusted two steps and now it seems does work.First redefine th boundary condition of the roof = OUTDOORS,Second add the skylight with HB add surface.


Hey Naga and LyXiao,

Thank you both for taking the time out of your day to look at the problem. I see the step I personally missed with the HB Add Subface and good to know a method to change the properties of faces if it’s needed.

Apologies for the confusion about the shade, I should have maybe removed that before sharing as it was causing problems and will need to be remodeled.

Thanks again!