Importing construction sets and materials from IDF or OSM to Honeybee in Ladybug Tools

Hello everyone,

I am in the process of learning the workflow of the new Honeybee and Ladybug Tools. I have an OSM and IDF file that purely contains customized construction sets and materials that I usually work with and I was wondering whether there is a way to import them into the new Honeybee without having to recreate each of them inside the grasshopper and copy pasting them every time I make a new model?
I am aware that there is an import OSM IDF component, but to my understanding it only imports the model and not the components of the file itself? Please correct me if I’m wrong.
Thanks in advance.

2023-07-05 Update: The fastest way I found for now is to manually edit and write in the materials into the JSON file for the opaque materials and window materials, but I am still wondering whether there is a way to streamline this process in Honeybee? Maybe converting the IDF into a JSON file and then reimporting back the JSON file into the Honeybee standards

Hi @hshidki ,

This is a good question since there are a lot of people who have libraries of their most frequently-used constructions in IDF format. For a case like this, you can simply drop the IDF file with all of your materials and constructions into your user constructions folder that can be found at:


Just dropping the IDF file into the constructions folder ensures that all materials and constructions in the IDF will get loaded into your standards library whenever you open Grasshopper. You will see that they show up in the output of the HB Search Constructions component and the HB Search Materials component. And this means that you can assign the constructions to your Honeybee geometry just by using the EnergyPlus name of the constructions (aka. the identifier of the construction) without the need to recreate the construction object within each of your Grasshopper definitions.

Hope that helps and, FYI, you’ll see that there are also folders next to the constructions folder for your frequently-used schedules, programs, construction sets, etc. So all of this can be stored in your standards library for reuse across your Grasshopper definitions.

Hi Chris,

Yes! This is what I was looking for, thank you so much.

1 Like

Hi Chris, the materials seem to work with the idf file I inserted to the folder, but the schedules doesn’t pop up in grasshopper when I put the idf into the schedules folder. Any ideas why? here’s my idf file
20220223_Mantra BES Library_Schedule.idf (61.6 KB)

The Schedules need to be formatted as Schedule:Year or Schedule:Constant in order to be imported correctly into Honeybee. I imagine those two in your IDF file are importing correctly.

Schedule:Compact is just so loose in its rules that neither OpenStudio nor Honeybee can reliably support it. So just convert your compact schedules to Scheulde:Year and they should be importable.

Maybe I’ll just add that, if you’re willing to write a few lines in a GHPython component, the ScheduleRuleset.extract_all_from_idf_file method that is used under the hood if the IDF importer has an option for import_compact, which will try to import the compact schedules if they are following a specific format. As you see, it is not used by default when loading schedules from your user library. However, by writing your own component that uses this option, you may be able to import some of your compact schedules if you have formatted them like a Schedule:Week.

Ahh I see, okay, I will try both options, thank you so much Chris!

1 Like

Hello! I am trying to use the option @chris described, but I get this error: 1. Solution exception:Illegal characters (u’\xc3’, u’\xb3’) found in material identifier
Do you know what does that mean? Does it have to do with the names of my materials?