Migrate materials/Constructions from Legacy

Want to ask is there a way to migrate material libraries from Legacy to [+]. Both Energy and Radiance.
I hace my userCustomEPLibrary.idf from Legacy that want to use in [+], for instance.

Thanks for the advice,

@AbrahamYezioro ,

Yes, there is a way to migrate your old userCustomEPLibrary.idf library to the new plugins. The libraries of standards for the new plugins all live within this folder:


Inside you will see that this folder is a bit more organized than legacy with separate folders to store constructions/materials, schedules/schedule types, programs, and construction sets:

So, to add your materials/constructions into your standards library, all that you have to do is drop your userCustomEPLibrary.idf file into the constructions folder. Alternatively, you can paste them into the sample user_library.idf that you see should already be in this constructions folder. Then, the next time you open Grasshopper, you should see all of the materials in that IDF appearing in your library.

As you can also imagine, it’s also now possible for you to add entire programs and construction sets to your library. So, if you wanted to make and share a program for something not in the default library (like a museum), all you have to do is write out the JSON of a ProgramType and drop it into the programtypes folder. You can use the “HB Dump Objects” component convert any honeybee object (program type, schedule, etc) to a JSON that can be dropped in this folder:

I just made a minor correction to my comment above. If you write JSONs into your standards library, they contain everything needed to describe an object by default (eg. a ProgramType JSON contains all schedules that are used to define the program unless you use the “abridged” option on the “HB Dump Objects” component). This isn’t necessarily true if you use the IDF format so, if you make a Construction definition in an IDF, it’s your responsibility to make sure that all of the materials of that define that construction also appear in that IDF.

Thanks @chris,
I have no experience with JSON, probably will need to get into it.

Unfortunately the process didn’t work. My Legacy library IDF includes materials/constructions and schedules.
Looking at the hierarchy in [+] i split the file in 2, 1 for materials and 1 for schedules, each located in the proper directory.
Opening any [+] file shows that all components fail (red color) complaining about something related to the libraries. At first the error was related to something on the schedules. Then i deleted the schedule library file, after this the error was related to the materials. All components showing the same error.
Checking the IDFs i don’t see something suspicious.
Those are the files so maybe you can check yourself (i think it will be more efficient this way):
user_library_Constructions.idf (172.2 KB)
user_library_Schedules.idf (45.1 KB)

What about Radiance materials? I see that the only option is JSON?

Sorry for this … and thank you,

So I think all of the errors you are experiencing are because you made relatively heavy use of optional keys in your IDF files. For example, most of your materials don’t have anything filled for thermal absorptance. Let me edit honeybee-energy now to ensure we embed all of the EnergyPlus defaults for optional values within the from_idf methods.

@AbrahamYezioro ,

I just pushed a fix:

You should be able to get it on your end now with the “LB Versioner” component.

I was able to load up both of your two IDF libraries into the plugin after integrating these fixes.
Bear in mind that Compact schedules are not supported right now (I see that you have a few in your IDF file) and I don’t think they were ever fully supported in legacy either. I would recommend converting them to the Day/Week/Year format.

Also FYI, the JSON schemas that you can use to write objects into the standards library are all documented in detail here, though it might be best to start with an overview of the schema as you see in this wiki and to take a look at the samples with the default objects provided in the honeybee-standards repo.

Radiance materials are called by their proper technical name in the new plugins - modifiers. You can drop either .rad (aka. .mat) or .json files into the honeybee_standards/modifiers folder. So JSON is not your only option here. It is for ModifierSets, though, which are analogous to ConstructionSets and don’t have any native representation in Radiance.

1 Like

Hi @chris,
Everything seems to be working fine.
Thanks for the links that explain the new structure. Very helpful.

Another migration question: How can i see/check the constructions assigned to the geometry. I see that the LableFaces attributes don’t include this (while the Legacy does).

@AbrahamYezioro ,

Glad to hear that the libraries are loading fine on your end. The properties that are specific to a particular engine (eg. Radiance, EnergyPlus), now have their own “attribute list” components that can be found under their respective tabs (eg. HB-Radiance, HB-Energy). So you can find components that list all of the energy properties here under the HB-Energy tab (circled in red):

You might also be happy to learn that “Label Rooms” and “Label Faces” aren’t the only way to visualize the assigned attributes now. Notably, there’s a “Color Rooms” component and a “Color Faces” component, which are particularly helpful for checking attributes like constructions, loads, or programs of large models as you see here in this sample:


This is great!! Very nice!!
The structure and organization is becoming clearer and clearer.
Thanks @chris,

Small question @chris,
How you will define this image, as Shade or as Blind?

I think it is like a roller shade where you need to define the permeability but it can also be a blind, though it doesn’t have slits …

Hi @chris,
A couple of doubts from Legacy to [+].
Can’t find how to define air gap for opaque constructions.
I have one such material in the my customized IDF library and it doesn’t load from the SearchMats component.
Also have in the file Blind and Shade materials that are not found in the search. As a matter of fact no window_mats are found at all.

Compared to the Legacy the [+] finds much less materials/constructions from the same list (234 vs 33 for instance in constructions).

Hi @chris. I followed the above step and tried to copy the existing custom idf file created in legacy and copied to user library idf. Still, honeybee search construction couldn’t find the added data. Is there something i am missing?.user_library.idf (2.4 KB)

I copied in the standard folder

But HB search component gives no data?

To add to this, in the code i could see search component is only looking into honeybee energy standard folder and not the standard folder. I may be wrong here.Please have a look

@Asisnath ,

This user_library.idf file that you uploaded only has construction definitions and doesn’t have any material definitions. So it’s not enough information to simulate the constructions and that’s why Honeybee decides not to load it. If you add the materials that the constructions need in order to be simulate-able, then honeybee should load it without issues.

1 Like

Oh my bad. How did i missed it. Thanks @Chris