Splitting Masses into Zones

Hello guys,

First of all congrats on the new version, I am really excited to test the new indoor comfort tools

However, this time I’d like to do it on an actual project. I am trying to design an office tower and split the mass into zones. I keep getting the following message:

“Failed to generate the perimeter zones for one floor as the floor’s geometry is not accomodated by the script. the floor will be returned as a single zone.”

Now, I understand this is a bit of a funky shape, so I tried the same design without any curved surfaces. Still the same error. I seem to remember more difficult spaces in Chris’s example to be used with no issues. Is there a way around this?

I am attaching the definition.

Thanks in advance!

Kind regards,


OfficeTower.gh (424 KB)

Hi Theodore,

Glad to hear that you are interested in testing the new comfort tools. I am just wrapping up the development phase now (I literally just have two features left to add and then it’s all good for testing). I can post an example file here once I get it there (it should be today or tomorrow).

After struggling with the splitBuildingMasses component for over a month, I realized that it is impossible to write something that is always going to work, especially when Rhino is a surface-based 3D modeler and not a volume or solid-based modeler (I discovered bugs in Rhino during the process of trying to make that component). This discussion explains this a bit more about the difficulty:


The splitBuildingMasses component is just meant to help you get your building divided as best as a script can but it’s not always going to work and you will always need to take it the rest of the way if your geometry is complex. And, in the video on splitBuildingMasses, I show you a complex geometry that fails to generate all zones but gives you enough for you to fill in the rest:


I hope that clarifies everything,


Hey Chris,

Thank you so much for the link ill check it out in the morning. I already started building geometries room per room (one room per brep).

Can’t wait for the indoor comfort tools I’m going to actually beta test them on real project and real data. Goal is to analyse comfort per space and during the hours of the day to propose optimised schedules for the HVAC system.

At least I think I can :slight_smile:


Hi Theodore,

I figured out why your simple geometry is not working. I noticed that, if I dropped the perimeter depth down to 1, it works and I also realized that the parts of your building jutting out in plan are about 1 meter. So setting the perimeter depth to a large number like 8 meters causes the offset zones to intersect themselves at these corners where the building just out. The script does not know how to deal with this case so it just returns the building split by floor. So, in short, the component is really only good for cases where there is not a lot of crenelation in the wall.

The comfort map components are ready for beta testing. You can find an updated example file here:


I encourage you to split up your building into many zones and put air walls between them. If you can, you should also split your surfaces. This will ensure a higher resolution and a more accurate understanding of the interior micro-climates.

Let me know if you have any questions.


Hi Chris,

Thanks for posting the components, I am playing around with them now.

I have sucessfully run a simulation with large areas of my building solely mechanically ventilated.

I am trying to run the adaptive comfort models but my computer freezes every time I try to create the mesh. Now, I understand it is my model, it is quite a large building. Is there an option I can choose to make it run faster? I suppose a larger grid size would help. The problem is that computer starts freezing even when I bring the mesh view factor component on the canvas (with nothing selected).

I’ll keep you posted when I actually manage to run the comfort tools. Thanks!

Kind regards,


Hi Theodore,

Glad to hear that you are trying out the tools. It would be good to know more specifics about when the view factor component is causing your GH to freeze. The component generates a preview of the mesh that it is going to calculate view factors for before you set runIt to true (since actually calculating the view factors is a computationally-intensive process that took 15 seconds to run in parallel for that small test box above - more like a minute for non-parallel). Are you saying that the component is causing your GH to freeze even before you have plugged HBZones into it? If that is true, I am pretty stumped as to what the issue is. Otherwise, I would set a very large gridsize before you plug in your HBZones.