Module Contents#

class ifcopenshell.api.sequence.add_work_schedule.Usecase(file, name='Unnamed', predefined_type='NOTDEFINED', object_type=None, start_time=None, work_plan=None)#

Add a new work schedule

A work schedule is a group of tasks, where the tasks are typically either for maintenance or for construction scheduling.

  • name (str) – The name of the work schedule.

  • predefined_type (str) – The type of schedule, chosen from ACTUAL, BASELINE, and PLANNED. Typically you would start with PLANNED, then convert to a BASELINE when changes are made with separate schedules, then have a parallel ACTUAL schedule.

  • start_time (str,datetime.time,optional) – The earlier start time when the schedule is relevant. May be represented with an ISO standard string.

  • work_plan (ifcopenshell.entity_instance.entity_instance,optional) – The IfcWorkPlan the schedule will be part of. If not provided, the schedule will not be grouped in a work plan and would exist as a top level schedule in the project. This is not recommended.


The newly created IfcWorkSchedule

Return type



# This will hold all our construction schedules
work_plan = ifcopenshell.api.run("sequence.add_work_plan", model, name="Construction")

# Let's imagine this is one of our schedules in our work plan.
schedule = ifcopenshell.api.run("sequence.add_work_schedule", model,
    name="Construction Schedule A", work_plan=work_plan)

# Add a root task to represent the design milestones, and major
# project phases.
ifcopenshell.api.run("sequence.add_task", model,
    work_schedule=schedule, name="Milestones", identification="A")
ifcopenshell.api.run("sequence.add_task", model,
    work_schedule=schedule, name="Design", identification="B")
construction = ifcopenshell.api.run("sequence.add_task", model,
    work_schedule=schedule, name="Construction", identification="C")