Class Ifc4x2::IfcWorkCalendar

Nested Relationships

This class is a nested type of Struct Ifc4x2.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x2::IfcWorkCalendar : public Ifc4x2::IfcControl

An IfcWorkCalendar defines working and non-working time periods for tasks and resources. It enables to define both specific time periods, such as from 7:00 till 12:00 on 25th August 2009, as well as repetitive time periods based on frequently used recurrence patterns, such as each Monday from 7:00 till 12:00 between 1st March 2009 and 31st December 2009.

HISTORY New entity in IFC2x4.

A work calendar is a subtype of IfcControl and thus inherits the feature for controlling other objects through IfcRelAssignsToControl, which is used to define a work calendar for tasks (IfcTask) and resources (IfcResource). It also inherits a name and description attribute, whereas a name shall be given and a description may be given as an indication of its content and usage.

The definition of time periods can be derived from a base calendar and/or modified/defined by a set of working times and non-working exception times. All time periods defined by IfcWorkCalendar.ExceptionTimes override the time periods inherited from the base calendar (base calendar is defined as the next applicable calendar for the task or resource). Thus, exception times replace the working times from the base calendar.

The base calendar of a work calendar is defined by IfcRelAssignsToControl, where IfcRelAssignsToControl.RelatingControl is linked with the base calendar and IfcRelAssignsToControl.RelatedObjects is linked with work calendars that are derived from the base calendar. Although not restricted by the IfcRelAssignsToControl relationship it is only allowed to have one base calendar.

Figure 17 shows the definition of a work calendar, which is defined by a set of work times and exception times. The work times are defined as recurring patterns with optional boundaries (applying from and/or to a specific date). The shown example defines a simple work calendar with working times Monday to Thursday 8:00 to 12:00 and 13:00 to 17:00, Friday 8:00 to 14:00 and as exception every 1st Monday in a month the work starts one hour later - i.e. the working time on every 1st Monday in a month is overriden to be 9:00 to 12:00 and 13:00 to 17:00. Both the working time and the exception time is valid for the period of 01.09.2010 till 30.08.2011.

Figure 17 — Work calendar instantiation

Public Types

typedef IfcTemplatedEntityList<IfcWorkCalendar> list

Public Functions

bool hasWorkingTimes() const

Whether the optional attribute WorkingTimes is defined for this IfcWorkCalendar.

IfcTemplatedEntityList<::Ifc4x2::IfcWorkTime>::ptr WorkingTimes() const

Set of times periods that are regarded as an initial set-up of working times. Exception times can then further restrict these working times.

void setWorkingTimes(IfcTemplatedEntityList<::Ifc4x2::IfcWorkTime>::ptr v)
bool hasExceptionTimes() const

Whether the optional attribute ExceptionTimes is defined for this IfcWorkCalendar.

IfcTemplatedEntityList<::Ifc4x2::IfcWorkTime>::ptr ExceptionTimes() const

Set of times periods that define exceptions (non-working times) for the given working times including the base calendar, if provided.

void setExceptionTimes(IfcTemplatedEntityList<::Ifc4x2::IfcWorkTime>::ptr v)
bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcWorkCalendar.

::Ifc4x2::IfcWorkCalendarTypeEnum::Value PredefinedType() const

Identifies the predefined types of a work calendar from which the type required may be set.

Added in IFC 2x4

void setPredefinedType(::Ifc4x2::IfcWorkCalendarTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcWorkCalendar(IfcEntityInstanceData *e)
IfcWorkCalendar(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, boost::optional<std::string> v6_Identification, boost::optional<IfcTemplatedEntityList<::Ifc4x2::IfcWorkTime>::ptr> v7_WorkingTimes, boost::optional<IfcTemplatedEntityList<::Ifc4x2::IfcWorkTime>::ptr> v8_ExceptionTimes, boost::optional<::Ifc4x2::IfcWorkCalendarTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()