Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

ScheduleRuleset is an OpenStudio specific object provided for convenience.

It has:

  • A default ScheduleDay
  • Potential special days ScheduleDays (Summer / Winter Design Day, Holiday, CustomDay1 & 2)
  • 0 to many ScheduleRules

A ScheduleRule has a ScheduleDay, and fields means to express when the rule applies: * Apply Sunday, Monday...Saturday * A start date & end date

ScheduleRuleset has the logic needed to translate to EnergyPlus IDF objects, because it knows when rules are meant to apply (and if no rules apply, the defaultDay is used). It will translate to an E+ Schedule:Year object (alongside as many Schedule:Week:Daily objects needed to represent it and Schedule:Day:Interval).

The DefaultScheduleSet is an abstraction provided for convenience, and with a concept that is dear to OpenStudio which is Inheritance (same as for SpaceType and co, cf https://nrel.github.io/OpenStudio-user-documentation/reference/model_objects/). Basically you can use a DefaultScheduleSet and apply to your Building, BuildingStory, SpaceType or Space. And that would allow you to not specifically assign a schedule to some of your loads, such as Lights, as it would use the one from the DefaultScheduleSet.

Note that the "Hours Of Operation" one is not being used anywhere though.

If you're going to fully control your schedule via EMS, it's probably easier to just use a Schedule:Constant, but any would work, as I think the actuator is still going to be "Schedule Value" for all Schedule:XXX objects in E+.

You can find lots of example of usage for pretty much all OpenStudio ModelObjects in the OpenStudio-resources repository (that's our integration tests which serve as an API demonstration as well). While it has historically been ruby only, I recently ported all examples to python as well. Go check out https://github.com/NREL/OpenStudio-resources/tree/develop/model/simulationtests, and for eg schedule_ruleset_2012_LeapYear.py

I created a jupyter notebook to show you how to use it and with explanation, see it at ScheduleRuleset_Demo.ipynb

ScheduleRuleset is an OpenStudio specific object provided for convenience.

It has:

  • A default ScheduleDay
  • Potential special days ScheduleDays (Summer / Winter Design Day, Holiday, CustomDay1 & 2)
  • 0 to many ScheduleRules

A ScheduleRule has a ScheduleDay, and fields means to express when the rule applies: * Apply Sunday, Monday...Saturday * A start date & end date

ScheduleRuleset has the logic needed to translate to EnergyPlus IDF objects, because it knows when rules are meant to apply (and if no rules apply, the defaultDay is used). It will translate to an E+ Schedule:Year object (alongside as many Schedule:Week:Daily objects needed to represent it and Schedule:Day:Interval).

The DefaultScheduleSet is an abstraction provided for convenience, and with a concept that is dear to OpenStudio which is Inheritance (same as for SpaceType and co, cf https://nrel.github.io/OpenStudio-user-documentation/reference/model_objects/). Basically you can use a DefaultScheduleSet and apply to your Building, BuildingStory, SpaceType or Space. And that would allow you to not specifically assign a schedule to some of your loads, such as Lights, as it would use the one from the DefaultScheduleSet.

Note that the "Hours Of Operation" one is not being used anywhere though.

If you're going to fully control your schedule via EMS, it's probably easier to just use a Schedule:Constant, but any would work, as I think the actuator is still going to be "Schedule Value" for all Schedule:XXX objects in E+.

You can find lots of example of usage for pretty much all OpenStudio ModelObjects in the OpenStudio-resources repository (that's our integration tests which serve as an API demonstration as well). While it has historically been ruby only, I recently ported all examples to python as well. Go check out https://github.com/NREL/OpenStudio-resources/tree/develop/model/simulationtests, and for eg schedule_ruleset_2012_LeapYear.py

I created a jupyter notebook to show you how to use it and with explanation, see it at ScheduleRuleset_Demo.ipynb