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

References for OpenStudio Schedule objects

asked 2024-06-06 17:55:21 -0500

James_BC's avatar

updated 2024-06-12 15:16:21 -0500

Can anyone suggest a good reference for learning about OpenStudio Schedule objects? I find the SDK documentation confusing and the E+ input/output guide doesn't include objects exclusive to openstudio.

I want to use the OS_SDK python bindings to write a script to modify some models, but I think I'm missing a couple fundamental concepts. For example:

  • What are the differences (and connections) between OS:Schedule:Ruleset, OS:Schedule:Rule, OS:DefaultScheduleSet objects?
  • How does (should) thehoursofOperationSchedule (found in the DefaultScheduleSet) get used? Can it affect other schedules?
  • Do OS:Schedule:Rule objects always connect to a OS:Schedule:Day Day Schedule? Can (should) I use other schedule types? (e.g. ScheduleCompact, ScheduleConstant, etc)
  • Are there other considerations I should think about when when I set up schedules when I use EMS objects to model BAS controls measures?
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2024-06-07 02:21:13 -0500

updated 2024-06-07 02:34:26 -0500

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 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, and for eg

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

edit flag offensive delete link more


Amazing. Just what I needed. Thank you Julien!

James_BC's avatar James_BC  ( 2024-06-07 10:36:17 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops


Question Tools

1 follower


Asked: 2024-06-06 17:55:21 -0500

Seen: 38 times

Last updated: Jun 07