Workflow architectual model > BEM

I am trying to find a flexible process to convert architectural models to something that can be used for building energy simulations. The only information I am interested in right now is geometry, most importantly floors, windows, and roof.

I have not access to the original files that are usually drawn in Rhino or Archicad and rely on exported files from the architect, usually IFC-files. Unfortunately, I seldom have the possibility to get in direct contact with the architect so the IFC usually are not very suitable for building simulations.

Anyway, my idea now is to find a way to convert the IFC-files into flat surfaces that can be used for BEM-simulations. My current workflow is to convert the IFC-files into a number of OBJ-files that is imported into Rhino. This works surprisingly well, but the problem is that I have not find a way to flatten the almost 2-dimensional objects like walls, windows and floors. My second idea is to convert the IFC-files to gbXML before I convert them to OBJ and import them into Rhino. I think this would be a good method but unfortunately, I have not found a method to do this.

Any suggestions would be useful, including usage of Openstudio, BIM-server, XMLTOHB, IFC-to-gbXML-converter, Spider and/or IfcOpenShell.

Hi @MaxTillberg,

The IFC translation has come up a number of times. We have been reluctant to take the lead because it can become a HUGE project and a lot of extra work to maintain. We don’t have anyone on our team who knows IFC in and out which means we have to start from zero and learn the schema, etc. That being said, BlenderBIM plugin ( is heavily using IFC and ifcOpenShell which looks very promising. An IFC exporter can connect their models to Ladybug Tools too.

If someone develops the step that extracts the information from an IFC file we can help with translating those to a HBJSON format and from there you can export osm, idf or radiance files. An if you get it to HBJSON we promise no data loss during the translation (not including HVAC systems).

We have already developed workflows the translates a Rhino 3dm file to HBJSON. And we are using it heavily on Pollination and we know it works!

There is also this repository which might already provide what you need so we can skip all the above! :grinning:


Thanks a lot Mostapha.
This looks very interesting. I have two more questions, the translation from a Rhino 3dm file to HBJSON, is there a description what this does and how to use it? I guess this could solve a lot of my problems. Also I wonder if you have an example how to use IFC-to-gbXML-converter, I was not able to run it.

Hi @MaxTillberg,

the translation from a Rhino 3dm file to HBJSON, is there a description what this does and how to use it?

Honeybee-3DM library uses a rhino file as an input and creates HBJSON from it. It creates honeybee objects based on the orientation of the surfaces. (a surface with up orientation becomes roof for example.) The library ignores the turned-off rhino layers. You can also use a config file (json) to have a customized control over how the library engages the rhino file. With the config file you can for example create honeybee apertures from objects on multiple layers. To use it, I would start from here.

1 Like

Thanks devang,
I installed honeybee-3dm but got an error
TypeError: to_hbjson() got an unexpected keyword argument ‘folder_path’.
Do you have an example to run it, for example converting test.3dm located in c:\test ?

Hey @MaxTillberg,

Thanks for catching that. I fixed it and a new version 0.4.35 is released. You will have to install again. I will record and share a tutorial tomorrow.

1 Like

I have never used it. Just found it online when we were discussing the options to export an IFC file to a BEM model. I personally gave up on gbXML being a reliable format. That’s part of the reason that we started the development of HBJSON file format.

Thanks Mostapha
I am about to give up on both IFC and gbXML as well. Do you have any examples transforming a 3D-model, for example Rhino to HBJSON?


If you use the LBT plugin there are components that exactly do that and export your model to HBJSON format. That’s also what honeybee-3dm uses under the hood. @devang, can provide some examples with the Rhino file.

Here are some other examples that are generated from inside Rhino/Grasshopper:

You can use this viewer to view them. You can also just click on the other models on the right side. For instance this is the famous Revit model exported as HBJSON.

If the viewer failed for larger models (mainly the ones with sensor grids) use can honeybee-vtk to convert them to VTK and view them in ParaView. The process is documented here. See the one that generates an HTML file.

Hi @MaxTillberg,

Honeybee-3dm introductory tutorials can be found here.

1 Like

@ MaxTillberg

This is a workflow outside Honeybee but I thought I should at least bring it up as it may be useful for you or someone else.

With my workflows I have taken the approach of importing a dxf and drawing the geometry from scratch using NREL’s - FloorspaceJS which is easy to do.

floorspace.js then exports a floorspace.js json which always ensures clean energy modelling geometry.

The floorspace.js json can then be imported in OpenStudio using the OpenStudio SDK and you have your geometry in OpenStudio.


Thanks, Is it only 2D and can you use meters instead of feet?

This is a realy nice app. Thanks for sharing. It would indeed be nice if it could be used with meters.
@MaxTillberg with the help of Jswan jSwan | Food4Rhino you can easily build a workflow which converts the json output to 3d rhino(grasshopper) geometry.

I just made a short video of my current process from Rhino to BEM (ICA ICE) and as you can see, the biggest obstacle is getting information from the Architect into something that can be simulated.

1 Like

Hi @MaxTillberg, can you share your sample file. I think this is something that honeybee-3dm should be able to handle. @devang has to confirm.

What are the formats that ICA ICE can import? Does it import IDF or OSM files? Or does it import gbXML?

PS. So this doesn’t really work?

Right now IDA ICE has at least 4 methods to import BIM-data:

  1. The IFC import extension
  2. Closed volumes in almost any CAD format (SKP, DXF, OBJ, 3DS, …). I made a demo video here. This method does not include windows and/doors.
  3. A Rhino plugin (in Beta)
  4. A Sketchup plugin (in Beta)

The IFC-import works best if the IFC-files are created for building simulations. Unfortunately, this is not always the case. For example the IFC-files needs IfcSpaces, walls needs to be split by level and curtain walls are tricky. There are some information here.

For more advanced CAD-users I think is would be useful to have a more flexible method that reads any geometry and creates the building based upon this. In my scripts I just read the corners of building bodies, thermal zones, windows and doors and created the geometry based upon this. The good thing is that we only need to generate the 1 level space boundaries since IDA ICE will fix all connections between the surfaces.

IDA ICE can not read IDF or gbXML directly but since these formats are readable and made for BEM they can easily be converted (the surfaces have no thickness). The problem is that the users seldom have access to IDF or gbXML-files, only 3D-CAD and/or IFC so the main problem is still to convert the 3D-model to something that can be simulated. If honeybee-3dm can solve any of this, it would be great.


Great! Thank you - so this is different from what I was imagining initially. You need a file format that can be imported in IDA ICE which is its own file format. Your main challenge is to get the data from the IFC file. I don’t think honeybee-3dm will solve that problem for you since it starts from having a model inside Rhino.

Have you tried BlenderBIM? It is IFC-based and I assume it should be easier to get the information out of an IFC using their software. I agree that this is a very interesting problem to work on. We are currently developing a Rhino plugin and adding support for importing an IFC file format can be an interesting one.

If the IDA ICE file format is straightforward then exporting to their format (even only for geometry can also be interesting). I see that you have a Grasshopper plugin that does that so it should be possible but we are no IDA ICE export. :grinning:

Thanks, I always thought this was an interesting problem. There are quite a lot of research in this field but surprisingly very few useful tools to convert BIM to BEM and no free or open source that I know about. At least not available. I tried no get my hand on Space Boundary Tool and IFC-to-gbXML but no luck.

I just learned about BlenderBIM a week ago but it looks very interesting. Still, I spent a decade to learn Rhino so I really hesitate to change CAD environment. Maybe if I use Blender as a preprocessing tool for Rhino using mostly scripting it will not be so difficult.

If there were support for IFC import in Pollination I would definitely use it. Also I think it is a very good idea to have most of the geometry editing in Rhino without involving grasshopper.



Sadly its only ft for now

@MaxTillberg BlenderBIM Add-on is a UI wrapper for IfcOpenShell in Blender. So it’s a useful way to script handling of IFC data. I’d say that the place for that discussion is ifcopenshell scripting on IFC file loaded in BlenderBIM — OSArch Community

Also on that forum there are a few discussions about BEM just search for it (I can’t post the link) the man to talk to is Cyril. He’s presented at our monthly meeting on the topic of BIMxBEM Monthly Meetup - Wiki.OSArch (#11) and is part of a buildingSmart workgroup working on BEM.

@mostapha if you don’t already know it take a look at the work of Jon Mirtschin (GeometryGym) on bringing IFC to Rhino.

1 Like