Importing openstudio Schedules into Pollination

Is there any documentation (or a script) to convert openstudio schedules to be useable in the Pollination interface inside Rhino? For example I am trying to add NECB schedules:

openstudio-standards/lib/openstudio-standards/standards/necb/NECB2015/data/schedules.json at master · NREL/openstudio-standards · GitHub

Adding them directly to the %AppData%\Roaming\ladybug_tools\standards\schedules folder does not seem to work.

Hi @marentette ,

Sorry for the late reply. Can you confirm what format you have gotten these schedules into? If you have them in an IDF, you can add that IDF file to %AppData%\Roaming\ladybug_tools\standards\schedules and they will be imported to your personal standards library in Pollination. Or, if you have them in an OSM file, you can save the OSM as an IDF and add the IDF to %AppData%\Roaming\ladybug_tools\standards\schedules.

If the only format that you have the schedules in is that custom JSON that the OpenStudio standards gem uses, then that’s not a standardized schema. It’s only used internally within the OpenStudio standards gem and NREL has changed that over time so we don’t have any plans to officially support that as an input data type.

However, I have some code that I only use myself to update the honeybee-energy-standards package with the ASHRAE-90.1 data in the OpenStudio standards gem. There’s a standards_update sub-package within the larger honeybee_energy_standards package that extends the honeybee-energy classes with methods that are intended to consume the OpenStudio standards JSONs:

So, if NREL has not changed the schema since last I updated that package, you can try importing the honeybee_energy_standards.standards_update package and then try using the honeybee_energy ScheduleRuleset.from_standards_dict() method to see if it will consume dictionaries of the NECB schedules there. If it does, then you can either write the schedules as IDF using the ScheduleRuleset.to_idf() method. Or you can write them into Honeybee JSON format using ScheduleRuleset.to_dict(). Both the IDF and the honeybee JSON format of the schedule can be dropped into %AppData%\Roaming\ladybug_tools\standards\schedules to add it to your personal library of standards.

If that doesn’t work, then you can use the source code for the ScheduleRuleset.from_standards_dict method as a model for doing your own conversion of the schedule to honeybee format:

It may just need to be tweaked a little if NREL has not changed the schema of their JSONs much.

Thanks @chriswmackey

tying to import any of the packages from your example script throws this error:

AssertionError: Cannot overwrite default schedule "Always On"

Could you provide an example of converting the NECB schedules or possibly add these schedules in a future Pollination update?

Hi @marentette ,

I think that error may be unrelated and you have just corrupted your user standards library somehow. Follow the instructions that I listed here and I think you should be able to load the standards_update package if you have cloned the honeybee_energy_standards repo:

@chriswmackey

it looks like the NECB schedules are in the lib below:

from honeybee_energy.lib.schedules import SCHEDULES

for schedule in SCHEDULES:
    if "NECB" in schedule:
        print(schedule)

I created a script to then convert the NECB space type templates from openstudio to honeybee program type format here:

openstudio_necb_convert/program_types_to_hb.py at main · mcw-energy/openstudio_necb_convert (github.com)

It seems to be working inside the Rhino pluggin. Is it safe to assume the schedules from honeybee_energy.lib.schedules are correct?

Hi @marentette ,

You’re right that it looks like the honeybee-energy-standards extension already has all of the NECB schedules in it:

… so just adding the ProgramTypes from the OpenStudio Standards gem space types should be all that you need there. And your script to translate the Program Types generally looks good.

I guess the schedules for all of the ASHRAE/NECB/CEC standards are just merged together in the OpenStudio standards gem so that’s why you find all of them included in the honeybee-energy-standards package.

FYI, if the support subcontract that we sent you ends up going through, I think we could help you format all of the NECB standards into an official honeybee extension that could easily extend the ASHRAE 90.1 templates that are already shipped with Pollination/Ladybug Tools. This would include the NECB construction sets, it would mean that the NECB standards would be loaded more quickly/efficiently by pollination, and it would also probably be easier for you to distribute these standards in your office (maybe we can even add NECB standards installation as an option on the installer).

The main reason why we have not done this already is that you’re the first to ask us for the NECB standards and there will be some maintenance required on a standards extension package like that as the OpenStudio Standards gem is refactored/updated and new versions of the code are released. So, if we’re able to justify our work on this through a subcontract and we knew that you’re definitely going to be using it in your office, we could do it.