How to freeze part of a definition to reduce recompute time


I have a honeybee file that is generating some HBZones and adjacencies form an initial brep, but it is taking quite some time to recompute every time I change anything down the flow (such as attributes for zone labelling). Especially the separateZonesbyFloor component is taking some time to recomputed, even though there are only 27 zones in 3 floors.

Is there a way to ‘freeze’ or ‘lock’ some components that are early in the flow so that it does not recomputed every time I change something down the line?

For now I have used a ‘data’ component after separateZonesbyFloor and then internalised the data so that it does not ‘go back’ (see below)… but can anyone suggest a neater solution?

I’ve seen a discussion on GH suggesting Geometry Cache component, but it keeps crashing my Rhino.

Many thanks,


Have you tired to simply enable/disable the components? You can select it from the menu by right click or just press Ctrl+E

Or do you want to save the Honeybee objects once you create them and then use it later before recreating them? Then take a look to this discussion:

Thanks Mostapha. That was exactly what I wanted. But I have tried it on my file and I am getting a runtime error (see below). Your example file is working, though. Am I doing something wrong?? I’ve also uploaded the .gh

Energy Leadenhal (897 KB)

I have to check but most likely the error is because the load component doesn’t support on of the object types in HBObjects. I’ll update the post when I have a working version.

Hi Gustavo. Try the components inside the attached file. It should fix the problem. (9.08 KB)

Thanks Mostapha.

The dump component is giving me the following error:

Runtime error (AssertionException): InputError: Parent/Adjacent object zone_7_Srf_0 is not in the list of HBObjects.
line 126, in dumpHBObjects, “<string>”
line 145, in main, “<string>”
line 154, in script

I am not sure what is the problem with the mentioned surface, but here is a snapshot of the HBObjects:

Hi Gustavo, Sorry for the late reply. Are you dumping all the zones? The error means that you are saving a zone that has an adjacency to another zone which is not part the zones that are connected to the component. If Honeybee saves the file as it is it won’t be able to load the file later.

Hi Mostapha. Yes, I was trying to dump just one set of zones from a specific floor as it was the separateZonesByFloor component that was taking a long time to recomputed. But all adjacencies between floors are set as are adiabatic.I’ve just tried dumping all zones after the separation, but they come back ‘flattened’, so I have to separate after loading. I’ve used a simple split tree directly this time and selected the zones I wanted and that is much faster, but it would be interesting to be able to dump just selected zones and take adjacencies with it (possibly only adiabatic adjacencies)?

Many thanks for the help!