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

Set holidays in OS

asked 2015-08-07 05:28:23 -0600

J Monteiro's avatar

updated 2015-08-07 10:01:57 -0600

Is possible in OS automatically define holidays in the schedule?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2015-08-07 10:55:03 -0600

updated 2020-11-25 15:13:04 -0600

The short answer is no. At least the ScheduleRuleset object that makes most of our schedules doesn't support holidays, and there isn't a way in OpenStudio store holidays. Eventually we need two things.

  1. Something like a summer and winter design day profile, but it would be a holiday/special day profile.
  2. The ability to store holidays in OpenStudio.

What can you do today? I see two options if you want to include holidays, neither one is very pretty:

Mimicking holidays with ScheduleRuleset

  1. Create a measure that takes as input a list of dates for the year that you want to be used as holidays.
  2. This would loop through all schedules and grab the first rule that applies to Sunday and would make a copy of that rule for each holiday date you defied in the measure. You can't do it all in one rule because the rule can only take a date range, and not something like (1/1,1/19,5/25 ...)
  3. You don't want to do this as "Apply Measures" now as it will clutter/mess up your schedules. You really want to keep it in your workflow and apply just at run-time.
  4. If you wanted to you could make an unused rule that gets used instead of Sunday if for some reason the holiday wasn't like a Sunday.

Using Compact Schedules

  1. Import compact schedules into your model. Ideally they will be edited as needed ahead of time since you can't edit them in the OpenStudio application, although if you had to you can edit them in the SketchUp Plugin.

  2. You need to tell EnergyPlus what holidays are. There are two options. Option "A" is to set the "Use Weather File Holidays and Special Days" field of the OS:RunPeriod object to yes. You would need to do this in an OpenStudio measure since the GUI doesn't expose this field. Option "B" is to write an EnergyPlus to manually add the specific holidays you want instead of relying on the weather file.

    Warning: If you enable holidays and you also still use some ScheduleRuleset objects in your model there might be un-expected consequences, so I wouldn't recommend a hybrid of these two solutions.I seem to recall that the default profile was being used where a holiday was defined.

UPDATE OpenStudio Application 1.1.0 October 2020

The OpenStudio Application now supports Holiday profiles similar to how summer and winter design days are setup

There is a new simulation setting to use the weather file for holidays. If you want to define custom holiday dates you can alter the weather file or can write a measure using RunPeriodControlSpecialDays

edit flag offensive delete link more


So looking into an old issue I see we do have a field in OS:Scedule:Rule for Apply Holiday just like we do for days of the week, but I don't currently see a method to get or set that in the API.

David Goldwasser's avatar David Goldwasser  ( 2015-08-07 11:07:41 -0600 )edit

@David Goldwasser that field is in the data model for future use but it is not currently enabled, we would enable it when we add holiday support to the API.

macumber's avatar macumber  ( 2015-08-11 12:34:25 -0600 )edit

@David Goldwasser or @macumber any updates on this?

anchapin's avatar anchapin  ( 2018-07-23 13:10:27 -0600 )edit

answered 2020-11-21 13:25:03 -0600

Adrien's avatar

5 years later... Just sharing my personal experience to anyone struggling with holidays definition: forget the schedule rulesets and don't edit your weather file!

I struggled quite a bit with the schedule rulesets... as good and flexible as they are (and I like how they are displayed in OpenStudioApplication), it is a real pain to maintain them for simulating through the whole year. If you study for example a school building, you typically need to define all the school and public holidays. If you have just one schedule that needs this information, it is totally fine with the rulesets, but you will probably need more then that (e.g. one schedule per classroom if each classroom has its own timetable and occupancy). I found no way to combine a simple occupancy schedule that is not aware of the holidays with another holiday-aware generic schedule that I would re-use multiple times.

That's why I ended up converting all my rulesets schedules to compact schedules that are not holidays-aware (you can't edit in openstudio but you can do it easily by hand - you need to really define only the weekdays because for holidays and weekends, you default to 0 or any other value of your choice... so your schedule in the end is maybe 20 lines, much less than all the objects that are created for a ruleset and that makes it difficult to edit by hand). Then you turn on "Use weather File Holidays and Special Days" in the "Advanced RunPeriod Parameters" and you use the measure InjectIDFObjects to import your holidays that you had defined as RunPeriodControl:SpecialDays in an IDF file. With this solution, you have to do more manual work and you can't visualize your holidays in OpenStudio, but in the end this is way easier and way less error-prone.

As an alternative to the IDF injection, you can define the holidays in your weather file... but this is somehow exactly the same as writing RunPeriodControl:SpecialDays objects, just it is more complicated.

edit flag offensive delete link more


@Adrien as a heads up holiday profiles were recently added to the OpenStudio Application for RulesetSchedules. I just updated my answer with a link in update at the bottom of my answer.

David Goldwasser's avatar David Goldwasser  ( 2020-11-25 15:12:47 -0600 )edit

Your Answer

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

Add Answer


Question Tools



Asked: 2015-08-07 05:28:23 -0600

Seen: 784 times

Last updated: Nov 25 '20