Exporting a Honeybee model as "plain" geometry to validate models with Climate Studio

Hello fellow Pollinators!

I’m currently trying to figure out if there is a way to export a Honeybee model as “plain” geometry. Ideally, closed polysurfaces of all the rooms in the model, the windows as surfaces that are coincident with the exterior wall surfaces, and the shades as surfaces.

The purpose of this task is so that I can input this geometry into ClimateStudio to run validation simulations of randomly selected runs of my larger parametric studies. Ideally, the Honeybee and ClimateStudio results will be in agreement about energy use since, as far as I understand, they both use EnergyPlus as their simulation engine.

Currently I have tried using “HB Deconstruct Model” and “HB Visualise All” to generate the plain geometry:

This produces rooms as closed polysurfaces which is ideal, but the windows are not baked in as their own surfaces. Instead, the face of the room polysurfaces show the outline of where the window is but there is no seperate window surface that I can work with. The below image shows the baked geometry with one of the rooms moved off to the side:

Unfortunately, the faces and aperatures outputs on the “HB Deconstruct Model” component are empty and I’m not exactly sure why, but I suspect it’s because I generated my HB model using components such as “HB Aperatures by Ratio” and “HB Louvre Shades” instead of passing it geometry that was modelled in Rhino? There is some data in the shades output but I’m unsure how to bake the shades as Rhino objects:

Please let me know if you are aware of a way that I can add the windows as surfaces to my geometry, or if there is a better strategy for exporting HB models as plain geometry.

Cheers,
Anthony

Hi @anthonyschneider, if you use the pollination model component and then bake the model into rhino, you can then use the PO_RemoveProperties command, and all the geometry will be there individual faces/brep for rooms, apps and shade etc.
As seen below:
for_po_disc
Hopefully that’s helpful
-trevor

1 Like

Hi @tfedyna, thank you for getting back to me.

Does what you have done here require the Pollination Rhino plugin? At the moment I only have the Pollination Grasshopper plugin installed but I’m getting the Rhino plugin installed soon.

Which container type are you using to bake the geometry? That is, the container that your model output on the “HB Model” component is wired into?

When I try to bake using a simple GH data container, nothing appears in the Rhino workspace and the Rhino command line doesn’t indicate any baking has occured.

I also noticed that you have a list of options to the side when you bake from GH, whereas I only have one button for baking. Probably a painfully stupid question but how come you have more bake options?

I am assuming that the “PO_RemoveProperties” command is part of the Rhino plugin.

Please let me know, and thank you for your help so far, much appreciated!

Cheers,
Anthony

Hi @anthonyschneider
So I’m pretty sure that the exact workflow below does require the Rhino side plugin.

But you should if I’m not mistaken have the pollination tab, where the model container as asked can be found.
image
I don’t know what happens when you bake a model without the rhino plugin, you’ll have to let us know for science :smiley:

I don’t believe in stupid questions, im not exactly sure the answer is myself but this is what I understand about the The more baking options:
image
I could be wrong about this but:
Merge with a new ID:
That should merge what is in the model container with the model in rhino and assign a new identifier.
Merge and check:
I think merges the model and runs PO_ValidateModel, but I don’t know for sure if that is what is meant by “Check”.
Merge without check:
I can confidently say merges the model without checking.

PO_RemoveProperties:
Yes! that’s one of the many rhino side pollination commands

all the best
-trevor

1 Like

Hi @tfedyna

Unfortunately I only have the following components under the Polliantion tab in my Grasshopper workspace:

image

Unfortunately I don’t think anything happens at all when I try to bake a model without the rhino plugin, I will need the model container that’s missing from my Pollination tab in GH. I assume it will show up once I get the Pollination Rhino plugin installed.

Oh it looks like the extra bake options you have described are specific to the Pollination model container which is why it’s not showing up on the standard data container I was trying to use.

Hopefully I’ll have the Rhino plugin installed soon and I’ll try your workflow again then :slight_smile:

Thanks again for your help!

Cheers,
Anthony

1 Like

Hi @anthonyschneider, I wrote a component that should hopefully get you by until you’ve got the rhino tool installed. just bake the component and you have geometry for rooms, aps and shade.
model_to_geometry
and here’s the file with the component:
to_geometry.gh (23 KB)
best
-trevor

Hi @tfedyna,

Thank you so much for your component! I have tried it out and it is working perfectly, except for the fact that I end up with about 20 copies of each piece of window, boundary shading geometry, and context shading geometry (for example, each window ends up with about 20 surfaces all with identical geometry inside each other). The baking of the rooms is working fine, I only get one piece of geometry for each room.

Therefore the entire bake is producing about 25,000+ separate pieces of geometry.

Just to check, since the python script contains the line:

for room in _model.rooms:

And, since I have 21 rooms in my model, could this be the cause of the duplicates?

I am using three separate levels (top, middle, bottom) where the middle floors are multiplied by the number of intermediate floors in the building.

Could this be the reason why I end up with one copy of each room, but about 20 copies of each piece of shading and window geometry? Please let me know :slight_smile:

If so, I am happy to wait until I’ve got the Pollination Rhino plugin installed and check if the first workflow you suggested which uses the Rhino plugin works for me :slight_smile:

Thanks again for all your help Trevor, much appreciated!

Cheers,
Anthony

@anthonyschneider oops! sorry about that! I was able to duplicate the issue and fix the bug.

if you replace the code inside the component with the following you should be good to go:

ghenv.Component.Message = 'Model to Geometry'

import ladybug_rhino.fromgeometry as fg

if _model:
    geometry = []
    for room in _model.rooms:
        geometry.append(fg.from_polyface3d(room.geometry))
    for ap in _model.apertures:
        geometry.append(fg.from_face3d(ap.geometry))
    for shade in _model.shades:
        geometry.append(fg.from_face3d(shade.geometry))
                
geometry_ = geometry

there were some indentation that caused entire the process to occur for each room duplicating the geometry. I didn’t catch originally as I was testing one room, the duplication wasn’t taking place.

best
-trevor

Hi @tfedyna,

I replaced the code in the python component and it is working perfectly, thank you!

I will investigate myself if I can split this script into a few separate components so that I can bake the rooms, windows, and shades to separate Rhino layers, so that I can more easily feed these objects into ClimateStudio’s Grasshopper workflow for validation.

Massively appreciate all of your help Trevor!

Cheers,
Anthony

1 Like

So I have really quickly split your Python script into 3 separate components, and using this method I can bake the rooms, windows, and shades seperately.

Thanks again for your help! Hopefully this thread will also help others who are looking to export their Honeybee geometry for whatever reason, in the absence of the Rhino plugin.

Cheers,
Anthony

1 Like

Awesome! Happy to help!
best
-trevor

1 Like