I’m working my way through adding some custom building and zone programs beyond the options provided in Honeybee. I’ve done so with reasonable success, I’m just encountering one last issue I’d like to ask for help with.
I’ve edited the Honeybee_honeybee and Honeybee_ListZonePrograms components as well as the OpenStudio_Standards.json, and OpenStudioMasterTemplate.idf
All seems to be going well until I use theRunEnergySimulation to write the .idf file. I get the following error message:
Solution exception:‘EPZone’ object has no attribute ‘isSchedulesAssigned’
I find isSchedulesAssigned in Honeybee_Honeybee after the schedules are assigned via calling the corresponding variables from the .JSON file (around line 5000). My .JSON file doesn’t seem to have any errors, so I’m curious as to what’s happening. Any ideas on how I could fix this?
Honeybee Legacy does not support the creation of custom building program objects and the route you are using to add them here is prone to errors like the one you are experiencing. While we might be able to figure out what is wrong with your specific case, it is likely going to be difficult to ensure that it works into the future. The best I can offer for honeybee legacy is to add your custom schedules to the userCustomLibrary.idf file in the ladybug default folder and just assign those schedules and loads to Honeybee zones with the two components that do so. We will have much more robust workflows for creating custom building programs with Honeybee[+] and, if you do the work now of assembling the schedules and loads that you want for different programs into the userCustomLibrary.idf, it will be possible to convert them to a much more maintainable format when we have the building programs objects in Honeybee[+] fully developed.
Thanks for the advice, it works decently well. It would be much nicer to be able to customize the program list, but for now I entered the info in panels, and then assign it using the setEPZoneLoads etc. components. If anyone else is thinking about doing this, you can clean up the code by just clustering that part of your program.
so one thing I just noticed…the ‘Honeybee_SetLoadsAndSchedules’ component does not like the custom input from this new component…is this to be expected given the coding of this component only looking at a default zoneProgram Honeybee library or is there a workaround you can think of? as I feed the custom zonePrograms into the getEPLoads and getEPSchedules components later in the script (which works great), that’s all good…so really the only need for using this input is to have the zone correct in the display attributes component and the separate by programs componenet, but it would still be nice to have.
This has a several benefits: faster, less RAM, and easier to QC and reporting.
Every time we CHANGE properties like loads, schedules at zone level, Grasshopper creates a copy of old zone, which consumes additional RAM, and slow down the entire workflow for a bigger project.
If we ASSIGN the new space type at begin, then we only have one copy of zone, and don’t have to change any load or schedules.
But in case you still want to keep your current workflow, you can just remove all code between line 87 to 109 in “Honeybee_Set Loads And Schedules”. Because this component is checking the different building program library.
Great component! I’ve been using it a lot and it is indeed very helpful.
I’m just wondering if it’s possible to also have a provision for including a mechanical ventilation schedule in this. I noticed that the component has a provision for an input (as shown in the attached screenshot) but it doesn’t get written to the library.
As a side note, the LBT plugin also has full support for creating your own Programs/Space Types. You can even save them to files or put them into your custom library of standards that loads up when you start using Honeybee.
Thanks @chris. Yes I installed latest plugins on Mac. I am looking for a way to name and manage zone naming on a model with over 400+ zones. I was trying to setup the way @MingboPeng suggested but it requires Ironbug. Is it available for Mac? Any other naming suggestions?
If you are asking for the “Ladybug Sort by Layers” component, I think that component is simple enough that it should work on Mac. Also, it’s included in the “Ladybug 0.0.69 and Honeybee 0.0.66 [Legacy Plugins]” release. So you don’t need to install Ironbug to get it (Just install Legacy).
If that fails, I know that the Human plugin also has several components that you can use to sort objects by layer, which should work on Mac.
Thanks @chris, can I install legacy plugins in Mac alongside LBT 1.1 to get Ironbug components? Any specific workflows or components I should look into to name large number of rooms? Is there a way to perhaps group the rooms into zones? I cant seem to get past this step to make the model manageable for my needs.
Most of the Legacy components won’t work on Mac (including the energy simulation) and Ironbug is 100% windows-only as it makes heavy use of the OpenStudio C# bindings.
So LBT is what you should use if you’re on Mac. The full_building_energy_model.gh example file that comes with the LBT plugin Food4Rhino download gives you a sense of how you can set up larger models with Honeybee. The Dragonfly plugin also has a lot of features on top of Honeybee geared towards easier setup of large models. I recommend looking at the dragonfly rooms_to_stories_to_building.gh example in particular.