ifcopenshell.api.sequence.add_work_time#

Module Contents#

class ifcopenshell.api.sequence.add_work_time.Usecase(file, work_calendar=None, time_type='WorkingTimes')#

Add either working times or holiday times to a calendar

A calendar defines when work occurs by defining working times and holiday times. First, the working times are defined, then the holidays may override the working times. For this reason, holidays are also known as exception times. For example, you might define the working times as every Monday to Friday, then define a few holidays in the year, such as the 1st of January. If the 1st of January is on a weekday, it will override the work time.

Parameters
  • work_calendar (ifcopenshell.entity_instance.entity_instance) – The IfcWorkCalendar to add the work or holiday time definition to.

  • time_type (str) – Either WorkingTimes or ExceptionTimes, depending on what you want to define.

Returns

The newly created IfcWorkTime

Return type

ifcopenshell.entity_instance.entity_instance

Example:

# Let's create a new calendar.
calendar = ifcopenshell.api.run("sequence.add_work_calendar", model)

# Let's start defining the times that we work during the week.
work_time = ifcopenshell.api.run("sequence.add_work_time", model,
    work_calendar=calendar, time_type="WorkingTimes")

# We create a weekly recurrence
pattern = ifcopenshell.api.run("sequence.assign_recurrence_pattern", model,
    parent=work_time, recurrence_type="WEEKLY")

# State that we work from weekdays 1 to 5 (i.e. Monday to Friday)
ifcopenshell.api.run("sequence.edit_recurrence_pattern", model,
    recurrence_pattern=pattern, attributes={"WeekdayComponent": [1, 2, 3, 4, 5]})

# Let's set some holidays
holidays = ifcopenshell.api.run("sequence.add_work_time", model,
    work_calendar=calendar, time_type="ExceptionTimes")

# We create a yearly recurrence
pattern = ifcopenshell.api.run("sequence.assign_recurrence_pattern", model,
    parent=work_time, recurrence_type="YEARLY_BY_DAY_OF_MONTH")

# The holiday is every 1st of January
ifcopenshell.api.run("sequence.edit_recurrence_pattern", model,
    recurrence_pattern=pattern, attributes={"DayComponent": [1], "MonthComponent": [1]})
execute(self)#