Problem when exporting to idf

Dear @chris and everyone,
I am having trouble translating my HBModels to idf. I have several custom scripts to create energy models. At the end, I export the model into idf with the following lines of code by importing model_to_idf from honeybee energy:

# create model
finalModel = Model(filesNames[n], rooms = newRooms, tolerance = tolerance)
# convert honeybee to idf string
idfModel = model_to_idf(finalModel)
# write idf file
file = finalModel.identifier +".idf"
filePath = open(path + "/" + file, "w")
for line in idfModel:

This script has always worked so far. However, since I update from Ladybug Tools 1.3.0 to 1.4.0 the idf is generated with the following error in the BuildingSurface:Detailed:

It looks like everything is shifted by one row. I am using EnergyPlus 9.4.0, but I have seen that in version 9.6.0 (which is the one used by OpenStudio3.3.0) there is a new row called “Space Name” between “Zone Name” and “Outside Buondary Condition”:


I need to compare these results with others I have obtained with EnergyPlus 9.4.0 so I don’t think it is feasible to update everything to the latest version of EnergyPlus.
To make it faster I am running this code outside of Grasshopper directly in Python, so I installed all packages using pip. Therefore, I am not sure if I can just go back to Ladybug Tools 1.3.0. I tried to look on github which are the versions of honeybee I should install by using pip to got back to the previous version but I couldn’t find that information.
I was wondering if going back to the previous version is the only way to avoid this problem since it is related to EnergyPlus or if there is another solution.
Thanks for your help.

Hey @fbattini ,

I’m right there with you in feeling that this addition of Space objects to EnergyPlus was probably more of a hassle than a benefit. But I realize that some people really love these Space objects and we’re not the only users of EnergyPlus.

Unfortunately it’s a breaking change that the E+ developers decided to make and we have to deal with the consequences. Your only options are to use an older version of the LBT core libraries that are compatible with the old EnergyPlus (and risk potentially encountering some of the bugs we’ve fixed since that old version of the core libraries). Or you could use EnergyPlus 9.6 along with the latest version of the LBT core libraries.

If you are really averse to the new E+, you can see in the LBT compatibility matrix that the last version of the LBT Grasshopper plugin that worked with E+ 9.4 was LBT 1.2. So you might need to change your Grasshopper plugin to go back to that version and use pip to install an old version of the core libraries that was used by that version. Looking at the history of the LBT plugin on Github it looks like the 1.2 release used lbt-dragonfly==0.7.127 as you can see here.

So just run:

pip install lbt-dragonfly==0.7.127

And you’ll get an old version of the core libraries that exports IDF files that are compatible with E+ 9.4

1 Like

Thank you very much @chris ! At the moment I cannot upgrade to the latest version of EnergyPlus, but I didn’t know where to find previous versions of LBT to install through pip. So, I will follow your suggestion. Problem solved.
As always, thanks a lot for your help.

1 Like