algorithmic modeling for Rhino

hi all!

I would like to run an optimization analysis with Galapagos based on shading devices (trees) around a small house. I tried to convert my simple Energyplus model into Honeybee, but I did not understand how to insert several parameters that I need to compare in my results:
1) in Internal Gains-People, how can I insert the schedules "work efficiency", "clothing insulation", "air velocity", and the thermal comfort model 1 type (adaptiveCEN15251)?
2) in Internal Gains-Lights, how can I insert the Return Air Fraction, Fraction Radiant, Fraction Visible, Fraction Replaceable?
3) 1) in Internal Gains-Equipment, how can I insert the Fraction latent, Fraction Radiant, Fraction lost?
4) where can I change the "Site:GroundTemperature:BuildingSurface"?
In general, I would like to know if there is a way to simply add Energyplus fields that I need: I noticed that it is possibile to add new fields in "Honeybee_set Energyplus Zone Loads" and "Honeybee_set Energyplus Zone Schedules", but I cannot understand how this new data are then processed by Energyplus
Moreover, I have a problem with the 0.0.56 version of  "Honeybee_EP Construction", which gives an error "layer_1 is not a valid material_definition. create the material first and try again" when I try to set a construction; therefore, I used the 0.0.55, which is perfectly functioning
attached you find the .gh file I made
thank you all very much

Views: 2779


Replies are closed for this discussion.

Replies to This Discussion

Hi Letizia,

You need to update to the latest version on github for the last issue.

Once you updated to the new version you can also use additionalStrings_ input on runEnergySimulation component to input more advanced inputs? You can add any EnergyPlus object there and it will be added to idf file.


Hi Letizia,

Thanks for posting here.

Mostapha's recommendation for the additional strings input is what will help you for 2) and 3).  I think that updating should also help with your construction issue.  If you post an example file with this construction issue, I am sure that we can figure out what is going on (generally, going back to a previous version is likely not going to be so helpful in the long run).

For your 1) question about comfort, you can request outputs related to the Adaptive comfort model from E+ by simply adding the required text output to the "simulationOutputs_" input of the "Run Energy Simulation" component (it looks like you figured this out from your example file).  I also wanted to make sure that you are also aware that there is a Ladybug component made to calculate adaptive comfort after you have already run the energy simulation and I find this to be useful for playing around with things like wind speed rather than having to run the E+ simulation each time.  At the moment, this adaptive component only does ASHRAE adaptive comfort and not ISO yet so I understand if you want to use the first method.

As for 4), I have just run into some issues with the ground temperature myself.  E+'s default assumption that the ground is 18C year-round was giving me some pretty crazy results.  Just today, I have added the ability to set ground temperatures with the Energy Sim Par component.  I also changed the default ground temperatures to be informed by the undisturbed ground temperatures in the weather file using code contributed by Anton Szilasi to parse the ground temp out of the EPW. The default is now that a ground temp of 18C will only be used in cases where the undisturbed ground temperature is below 18C and will be the actual undisturbed ground temperature if it rises above 18C.  This seems closer to what a lot of the recommendations in the E+ reference give.  Let me know if this helps.


Thank you both very much for your answers!

I updated honeybee to the last version and the issue with the EP construction is solved :)

As for the adaptive comfort, I solved with the simulationOutputs_, as you saw in the file; unfortunately, I cannot use the ladybug component, as I am currently working in Italy and Germany.

I also thank you very much for the new ground temperature component, it does exactly what I was looking for :) 

About the additional_Strings component, I am not sure I understand its functioning, so I will try to explain how I think it should work.

1) Does it overwrite everything that is defined with Honeybee?

2) Some of the schedules I want to add are nested inside the internal gains (for example, in People gains, I would like to add the Clothing insulation). Therefore, I should use the additional_Strings to substitute the whole internal gains component from Honeybee with the E+ object, am I right? However, as I don't want lose all the advantage of a parametric software like grasshopper and the optimization of Galapagos, I would like to define all my schedules with the csv schedule component of honeybee and call them afterwards with the additional_Strings as external files.... this way everything should work, right?

Next week I will give it a try and let you know if it worked.

thank you again



Glad that the construction and ground temperature issues are solved.  I have plans to add in a bunch more stuff with adaptive comfort but I am glad that you were able to solve it with the outputs:

To answer your questions about the additionalStrings, it only writes things in addition to what is already written.  It cannot overwrite the things defined in the connected Honeybee zones.

The default oupenStudio schedules for people gains are very simple.  They are literally just a number of people/m2 multiplied by the schedule value and a number of watts/person (represented as an "occupancy activity" schedule).  You can change the number of people/m2 with the "Set EnergyPlus Zone Loads" component and you can change the people occupancy schedule just by plugging in a CSV schedule into the "Set EnergyPlus Zone Schedules" component.  You can change the occupant activity (or metabolic rate) of the people by plugging a CSV schedule into the "Set EnergyPlus Zone Schedules" component.

My guess is that, if you need a proxy for clothing effects or the rate at which the people heat is going to the zone, editing the occupancy activity will be the closest to what you are expecting.  However, I get the sense that occupant clothing should not matter much if your occupants are in the zone long enough to reach equilibrium with it.  Are your occupants only in the space for a brief time or are they adding/removing clothing a lot?


dear Chris and Mostapha

I am testing the new version of Honeybee and Ladybug with a colleague and I still have some problems.

1) I am sorry to say that the "monthlyGrndTemps" in the "energySimPar" command does not seem to work for me... I set that as a list (see the attached files) to get 21°C, but the .idf file always give me the default 18°C

2) I am working with the "additionalStrings" parameter, that is really great to add new features (thank you soooo much for that!). Unfortunately, I still have a problem. As I told you before, I would like to change the section "People" of Internal Gains, because I need to add other features that I use in Energy+. Using the "additionalStrings", I added the schedules I needed and set up the "Internal Gains" as a text, and it worked fine, but now I have two different "Internal Gains": the default HoneyBee one and mine, attached to the same Thermal Zone... Even if I skip the "HoneyBee_Set_Energyplus Zone Loads", there is still a default Internal Gain that I cannot avoid (see the attached files). How do you think I can solve that?

I know I cannot overwrite the HoneyBee components with the "additionalStrings", but can I remove the default Building programs of the Energyplus library, as I do with Openstudio?


I don't know if that is possible, but on the "Honeybee_bldgPrograms" command, it would be great to have a "none" string corresponding to no default program settings (which, anyway, cannot be used for European standards).

Another idea that I have, but I don't know how feasible it is, is the possibility to insert new schedules or delete the default ones from the "HoneyBee_Set_Energyplus Zone Loads", with the "Insert Parameter" command. Of course, these are only suggestions form an end user: just to solve the problem in the easiest way for you would be awesome :))


Moreover, there are a couple of new issues that I haven't experienced with the previous versions:

1) from time to time (more or less every time I run a simulation or change something in the file) the "Honeybee run Energy Simulation" gives me this error: "failed to find M in Library", where M is either a material name or a construction name. If I connect again the same materials or constructions to the HBSurfaces, or I run the "update this file" command for HoneyBee and Ladybug, the error disappears, to come back again for apparently no reason (see the attached files).

2) the "SimControls" command does not work anymore, as it does not change the simulation controls according to my true-false sequence (see the attached files).


Thank you so so much for your work, which is really useful... if you come to Italy sometimes, you know you have a beer paid from us ;)



Hi Letizia,

Maybe we should break down this discussion into multiple discussions so it is easier to follow. I personally have a hard time to track all the issues in a such a long discussion.

Back to additionalStrings_, I agree that it will be ideal to be able to overwrite current EP objects if you input the same object but it needs various number of checks to find the correct object that should be overwritten.

Why do you need a none program for the zone? In case none of the default programs matches your schedule you can add your own schedules to Honeybee and load them for the simulation. If you check Ladybug's default folder there is a file named as "userCustomEPLibrary.idf"_ Copy all your schedules, constructions, etc. in the file and they will be loaded into Honeybee library when you let the Honeybee fly.

Back to your issues the first one looks like an issue with order of execution of components, and I will check your file for number two.

I still suggest to break down your questions/wishes into separate discussions so we can make sure to address all of them.


PS: In case you have standard schedules, and constructions for European countries we can probably add them to default library.

PSS: I'm coming to Rome this summer! (

Hi Mostapha,

I’m Filippo, the colleague Letizia was talking about. First of all thank you very much for your work, you’re all doing a great job in trying to let grasshopper and Energy plus work together.


As you can see in the attached file, I temporarily bypassed the construction and some of the schedule we made to use the custom library.idf that you suggested us, and  it works very well, (at the moment we’re not going to run galapagos optimization on material thicknesses so for now we can wait for updates on that issue without any hurry).


Unfortunately I believe the problem lies for us not in the possibility to customize schedule and construction but in the default program that defines some strings in the idf file without the possibility to change/overwrite them: if we cannot create our own custom program or disable the program by default in some way (as Letizia said maybe creating a “none” option in the Honeybee_bldprograms could do just fine) , we will continue to have in some places settings that are not good for our research (for example in the people internal gain where to one gain are attached several schedules and settings, and we need to fill the field of air velocity schedule name and the thermal comfort model with Adaptive CEN15251 to have Adaptive comfort output from the simulation).


p.s. great news you're coming to Rome!!!


Hi Fillippo,

Great to know that you found a way to fix the first issue. For the second part if you can be more specific I think there are solutions such as replacing the string and re-running the analysis. Check the attached file for an example where I replace fraction radiant.

I know it is somehow a pretty hacky solution but should solve your problem until we find some time to address the issue in a more sophisticated way.

Hope it helps,



Hi Mostapha,
I'm trying to use the "replace" string function to change all the strings I need to, but I get this error on the "write to idf" component:

1. Solution exception:'ascii' codec can't encode character '\uFFFD' in position 951 

What does it mean? I tried to set as destination folder the same of the idf file I want to modify or to use the default one but it didn't seem to work. 

I'm sorry to bother you, maybe it's a simple problem, but I'm stuck and I can not proceed with the test of your suggestion...


This is an encoding issue but I think I will leave answer to this one for this discussion:

Let's find a clean way to address this.

Hi Mostapha,

I have a problem with radiation analysis in Ladybug, similar to the one that was seen here. 

0. Current working directory is set to: c:\ladybug\\ODESSA_UKR
1. Runtime error (EncoderFallbackException): 'ascii' codec can't encode character '\u414' in position 31
2. Traceback:
line 191, in main, "<string>"
line 312, in script

Can you give some advice please?


Hi Dmitry, Based on the line number either gendaymtx.exe is not downloaded on your machine correctly or the analysis hasn't run correctly on your machine. To address the issue first check c:\ladybug and make sure gendaymtx.exe is downloaded correctly. It should be 21KB. Then make sure it's unblocked (right click, properties) and if both of them are fine re-run the analysis and set useOldRes_ to False. There are couple of similar discussions if you search for gendaymtx






  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service