OpenStudio:model
 AllClasses Namespaces Functions Variables Typedefs Enumerations Enumerator Pages

#include "ScheduleRule.hpp"

Inheritance diagram for openstudio::model::ScheduleRule:

Public Member Functions

 ScheduleRule (ScheduleRuleset &scheduleRuleset)
 ScheduleRule (ScheduleRuleset &scheduleRuleset, const ScheduleDay &daySchedule)
virtual ~ScheduleRule ()
ScheduleRuleset scheduleRuleset () const
int ruleIndex () const
ScheduleDay daySchedule () const
bool applySunday () const
bool applyMonday () const
bool applyTuesday () const
bool applyWednesday () const
bool applyThursday () const
bool applyFriday () const
bool applySaturday () const
std::string dateSpecificationType () const
boost::optional< openstudio::Date > startDate () const
boost::optional< openstudio::Date > endDate () const
std::vector< openstudio::Date > specificDates () const
bool setApplySunday (bool applySunday)
void setApplySundayNoFail (bool applySunday)
bool setApplyMonday (bool applyMonday)
void setApplyMondayNoFail (bool applyMonday)
bool setApplyTuesday (bool applyTuesday)
void setApplyTuesdayNoFail (bool applyTuesday)
bool setApplyWednesday (bool applyWednesday)
void setApplyWednesdayNoFail (bool applyWednesday)
bool setApplyThursday (bool applyThursday)
void setApplyThursdayNoFail (bool applyThursday)
bool setApplyFriday (bool applyFriday)
void setApplyFridayNoFail (bool applyFriday)
bool setApplySaturday (bool applySaturday)
void setApplySaturdayNoFail (bool applySaturday)
bool setStartDate (const openstudio::Date &date)
bool setEndDate (const openstudio::Date &date)
bool addSpecificDate (const openstudio::Date &date)
void ensureNoLeapDays ()
bool containsDate (const openstudio::Date &date)
std::vector< bool > containsDates (const std::vector< openstudio::Date > &dates)
bool applyAllDays () const
bool applyWeekdays () const
bool applyWeekends () const
bool setApplyAllDays (bool applyAllDays)
bool setApplyWeekdays (bool applyWeekdays)
bool setApplyWeekends (bool applyWeekends)

Static Public Member Functions

static IddObjectType iddObjectType ()
static std::vector< std::string > validDateSpecificationTypeValues ()

Protected Member Functions

bool setRuleIndex (int index)

Related Functions

typedef boost::optional
< ScheduleRule
OptionalScheduleRule
typedef std::vector< ScheduleRuleScheduleRuleVector

Detailed Description

ScheduleRule is a ParentObject that wraps the OpenStudio IDD object 'OS:Schedule:Rule'.

Constructor & Destructor Documentation

openstudio::model::ScheduleRule::ScheduleRule ( ScheduleRuleset scheduleRuleset)
explicit

Constructor associates this rule with the given ruleset.

This rule is made to be the highest priority rule. A new ScheduleDay is created which is owned by (a child of) this rule.

openstudio::model::ScheduleRule::ScheduleRule ( ScheduleRuleset scheduleRuleset,
const ScheduleDay daySchedule 
)
explicit

Constructor associates this rule with the given ruleset.

This rule is made to be the highest priority rule. The given daySchedule is cloned and the new object is owned by (a child of) this rule.

virtual openstudio::model::ScheduleRule::~ScheduleRule ( )
inlinevirtual

Member Function Documentation

bool openstudio::model::ScheduleRule::addSpecificDate ( const openstudio::Date &  date)

Adds a specific date, will delete start and end dates.

bool openstudio::model::ScheduleRule::applyAllDays ( ) const

Returns true if the rule applies to all days from Monday to Sunday.

bool openstudio::model::ScheduleRule::applyFriday ( ) const
bool openstudio::model::ScheduleRule::applyMonday ( ) const
bool openstudio::model::ScheduleRule::applySaturday ( ) const
bool openstudio::model::ScheduleRule::applySunday ( ) const
bool openstudio::model::ScheduleRule::applyThursday ( ) const
bool openstudio::model::ScheduleRule::applyTuesday ( ) const
bool openstudio::model::ScheduleRule::applyWednesday ( ) const
bool openstudio::model::ScheduleRule::applyWeekdays ( ) const

Returns true if the rule applies to all weekdays Monday to Friday.

bool openstudio::model::ScheduleRule::applyWeekends ( ) const

Returns true if the rule applies to Saturday and Sunday.

bool openstudio::model::ScheduleRule::containsDate ( const openstudio::Date &  date)

Returns true if this rule covers the given date.

std::vector<bool> openstudio::model::ScheduleRule::containsDates ( const std::vector< openstudio::Date > &  dates)

Returns whether or not this rule covers each given date.

std::string openstudio::model::ScheduleRule::dateSpecificationType ( ) const
ScheduleDay openstudio::model::ScheduleRule::daySchedule ( ) const
boost::optional<openstudio::Date> openstudio::model::ScheduleRule::endDate ( ) const

Returns the end date of the date range if set.

A start date > end date indicates that the range wraps around the year.

void openstudio::model::ScheduleRule::ensureNoLeapDays ( )
static IddObjectType openstudio::model::ScheduleRule::iddObjectType ( )
static
int openstudio::model::ScheduleRule::ruleIndex ( ) const
ScheduleRuleset openstudio::model::ScheduleRule::scheduleRuleset ( ) const
bool openstudio::model::ScheduleRule::setApplyAllDays ( bool  applyAllDays)
bool openstudio::model::ScheduleRule::setApplyFriday ( bool  applyFriday)
void openstudio::model::ScheduleRule::setApplyFridayNoFail ( bool  applyFriday)
bool openstudio::model::ScheduleRule::setApplyMonday ( bool  applyMonday)
void openstudio::model::ScheduleRule::setApplyMondayNoFail ( bool  applyMonday)
bool openstudio::model::ScheduleRule::setApplySaturday ( bool  applySaturday)
void openstudio::model::ScheduleRule::setApplySaturdayNoFail ( bool  applySaturday)
bool openstudio::model::ScheduleRule::setApplySunday ( bool  applySunday)
void openstudio::model::ScheduleRule::setApplySundayNoFail ( bool  applySunday)
bool openstudio::model::ScheduleRule::setApplyThursday ( bool  applyThursday)
void openstudio::model::ScheduleRule::setApplyThursdayNoFail ( bool  applyThursday)
bool openstudio::model::ScheduleRule::setApplyTuesday ( bool  applyTuesday)
void openstudio::model::ScheduleRule::setApplyTuesdayNoFail ( bool  applyTuesday)
bool openstudio::model::ScheduleRule::setApplyWednesday ( bool  applyWednesday)
void openstudio::model::ScheduleRule::setApplyWednesdayNoFail ( bool  applyWednesday)
bool openstudio::model::ScheduleRule::setApplyWeekdays ( bool  applyWeekdays)
bool openstudio::model::ScheduleRule::setApplyWeekends ( bool  applyWeekends)
bool openstudio::model::ScheduleRule::setEndDate ( const openstudio::Date &  date)

Sets the end date of the date range, will delete any specific dates specified.

A start date > end date indicates that the range wraps around the year.

bool openstudio::model::ScheduleRule::setRuleIndex ( int  index)
protected
bool openstudio::model::ScheduleRule::setStartDate ( const openstudio::Date &  date)

Sets the start date of the date range, will delete any specific dates specified.

A start date > end date indicates that the range wraps around the year.

std::vector<openstudio::Date> openstudio::model::ScheduleRule::specificDates ( ) const

Returns the specific dates specified if any.

boost::optional<openstudio::Date> openstudio::model::ScheduleRule::startDate ( ) const

Returns the start date of the date range if set.

A start date > end date indicates that the range wraps around the year.

static std::vector<std::string> openstudio::model::ScheduleRule::validDateSpecificationTypeValues ( )
static

Friends And Related Function Documentation

typedef boost::optional<ScheduleRule> OptionalScheduleRule
related
typedef std::vector<ScheduleRule> ScheduleRuleVector
related