IFC - Industry Foundation Classes/IFC concepts/IFC sequence concepts

From Wiki.OSArch

Processes are individual events or tasks. Processes may have different meanings when used in different scenarios. When processes are used in construction, they represent construction tasks which have associated sequence relationships, may transform inputs into outputs, and have relationships to costs, products, and resources. When processes are used in facility management, they represent maintenance tasks, including to-do lists and recurring patterns.

The primary classes related to this concept are:

  • IfcWorkCalendar
  • IfcWorkControl
  • IfcWorkPlan
  • IfcWorkSchedule
  • IfcRelSequence
  • IfcTask
  • IfcTaskTime
  • IfcLagTime
  • IfcTaskType
  • IfcEvent
  • IfcProcedure

A project has plans related to construction and facility management

Ifc-concept-sequence-workplan.png

Work plans group work schedules, typically to distinguish between schedules for construction management purposes and schedules used for facility management purposes.

Source: IfcWorkPlan

A project may have work calendars

Ifc-concept-sequence-workcalendar.png

A work calendar is a definition of working time and holiday times. Later on, this calendar can be used to describe when things are available or when tasks are allowed to take place. A typical calendar might be a 5-day working week, when you work on Monday to Friday and take Saturday and Sunday off.

Note: we are unsure whether or not it is more appropriate to store calendars at the project level or at the work plan level (described in another concept with caveats of its own) or both. For now, our implementation stores calendars at the project level.

Source: IfcWorkSchedule

A project has schedules related to construction and facility management

Ifc-concept-sequence-workschedule.png

A work schedule is used to group together tasks to achieve a goal.

Note: we are unsure what is the purpose of directly assigning work schedules to the project. It makes more sense to group it within an IfcWorkPlan, which acts as a distinguishing factor between work schedules used for sequencing, compared to facility management, or other currently unknown purposes (perhaps, safety routine checks?). We think this relationship should be removed. The docs for IfcWorkControl also state that you should only relate it to the project as a fallback if no better context may be provided.

Source: IfcWorkSchedule, IfcWorkControl

A project may contain tasks

Ifc-concept-sequence-task-project.png

When a task has no parent, it is defined globally as a task in your project.

Note: we are unsure what is the purpose of this. Tasks seem to make sense within the context of a work schedule, not elsewhere. We think this relationship should be removed.

Source: IfcTask, IfcWorkSchedule

A work plan contains calendars

Ifc-concept-sequence-workcalendar-plan.png

A calendar within a work plan implies that the calendar is related to the work plan, and may be used later on to describe availability for other concepts within the work plan, such as tasks or resources.

Note: there is only a single sentence describing this relationship in the source, and it uses a nests relationship which is different from all other work plan relationships, so we are suspicious about this concept and do not currently support it.

Source: IfcConstructionResource

A work plan contains schedules

Ifc-concept-sequence-workschedule-workplan.png

A work schedule is used to group together tasks to achieve a goal. That goal is related to the work plan that it is part of. Typically, a work plan will contain multiple schedules. Each schedule may be planned, actual, or a baseline.

Source: IfcWorkPlan

A work plan may contain tasks

Ifc-concept-sequence-workplan-task.png

A work plan may contain tasks, which imply that the tasks are relevant to that work plan.

Note: although this is possible, we don't really see the point of it. It makes more sense for tasks to be related to work schedules, not work plans. We think this relationship should be removed.

Source: IfcWorkPlan

A work plan may contain resources

Ifc-concept-sequence-workplan-resource.png

A work plan may contain resources, which imply that the resources are relevant to that work plan. These should only be top level resources, such as subcontract or crew resources. Later on, sub resources, such as labour, equipment, or material, may then be related to tasks or calendars in a separate concept.

Source: IfcWorkPlan, IfcConstructionResource

A work calendar determines when a task can occur

Ifc-concept-sequence-task-calendar.png

If a task is assigned a calendar, its duration may be specified in terms of working days (which IFC calls work time), instead of calendar / elapsed days. In this example, if the calendar is a 5 day working week, the task takes 10 working days, which is equivalent to 2 weeks of actual elapsed time.

Source: IfcWorkCalendar, IfcWorkSchedule

A work calendar describes when a resource is available

Ifc-concept-resource-availability.png

A resource is only available on certain dates and not others.

Source: IfcWorkCalendar

A work calendar can be inherited through child tasks

Ifc-concept-sequence-task-calendar-inheritance.png

If a task does not have a calendar assigned to it, it inherits the calendar from its parent task. This inheritance makes it easy to assign default calendars to a top level task in a work schedule and only override as necessary in more specific child tasks.

Note: it is assumed, but no evidence found, that hierarchical resources have this same inheritance behaviour. In other words, it is assumed that if a resource does not have a calendar assigned to it, it inherits the calendar from its parent resource.

Source: IfcWorkSchedule

A calendar may override the availability of an inherited calendar

Ifc-concept-sequence-task-calendar-inheritance-override.png

A calendar may be a child of a parent calendar. The exception times of the child calendar will first inherit, and then override the availability of its parent calendar. A calendar is only allowed to have one parent calendar.

It is currently ambiguous as to how the working times of a child calendar interacts with its parent calendar. We currently assume that if a working time is present in a child calendar, it also overrides the availability of its parent calendar.

For example: a parent calendar has a working time of Monday to Friday. The child calendar has a working time of Saturday, and an exception time of Monday. The final availability of the child calendar is therefore Tuesday to Saturday.

Source: IfcWorkCalendar

A work schedule may be planned

Ifc-concept-sequence-workschedule-planned.png

In construction scheduling, a work schedule can represent your current plan of tasks, prior to the start of construction. A planned schedule typically has scheduled start, finish, and durations for its tasks. A planned schedule must not have any actual starts, actual finishes, or actual duration data.

Note: the definition that distinguishing planned from actual is assumed. It is not clear in the docs. Also, the fact that we need to read the docs for IfcConstructionResource to figure this out isn't very nice.

Source: IfcConstructionResource

A work schedule may represent actual dates when the tasks are underway or complete

Ifc-concept-sequence-workschedule-actual.png

A work schedule may be labeled as an actual schedule, if it contains actual start / end dates of tasks, and actual durations of tasks.

Note: the definition that distinguishes planned from actual is assumed. It is not clear in the docs. Also, the fact that we need to read the docs for IfcConstructionResource to figure this out isn't very nice.

Source: IfcConstructionResource

Work schedules may be duplicated and compared as a baseline

Ifc-concept-sequence-workschedule-baseline.png

A work schedule may be duplicated. The old copy of the work schedule is known as a baseline. You can have multiple baseline work schedules. A baseline schedule can be used to compare between old plans and current plans. This baseline comparison can be used as a benchmark to measure your progress or changes in executing or planning a project.

Note: this usecase is not very clearly described in the docs, and mostly hinted at in the IfcConstructionResource page. However, it is common practice to duplicate and create baselines, and so based on this knowledge, we have attemped to describe this concept the best we can.

Source: IfcConstructionResource

A work schedule may nest other work schedules

Ifc-concept-sequence-subschedule.png

Uh. A schedule has subschedules. This is possible, but we have no idea what the usecase is. Nor we do know what it implies for derived dates, calendar inheritance, or cost derivation. We don't currently support this relationship.

Note: there is also an ambiguous note about how work schedules can include other work schedules as sub-items using aggregation instead of nesting. We take a prudent stance that this sentence is just misleading and should be ignored.

Source: IfcWorkSchedule

A work schedule may contain resources

Ifc-concept-sequence-workschedule-resource.png

A work schedule may define the resources that it uses.

Note: this concept is not fully understood, and why it is important to link resources to a work schedule as opposed to simply the tasks within it, or to a work plan.

Source: IfcWorkSchedule, IfcConstructionResource

A work schedule may contain tasks

Ifc-concept-sequence-task.png

In construction scheduling, a work schedule is a collection of tasks that must be completed over a specific timeline in order to reach the final deliverable for the project, such as constructing and commissioning a building.

Source: IfcWorkSchedule

A task may contain subtasks

Ifc-concept-sequence-subtask.png

In construction scheduling, a task may contain subtasks. This hierarchy of tasks forms the Work Breakdown Structure (WBS).

Source: IfcTask

A task may be assigned a task time, to determine duration and scheduling times

Ifc-concept-sequence-task-time.png

A task may have its duration described most simply in terms of elapsed time. In this case, the task takes 7 days.

Source: IfcTaskTime

A task may have sequential relationships to other tasks

Ifc-concept-sequence-sequence.png

In this scenario, a predecessor task (setting up formwork) has a finish to start relationship to a successor task (pouring concrete) with a lag time of 1 elapsed day between them.

Source: IfcTask, IfcRelSequence, IfcProcess

Tasks can construct or install objects

Ifc-concept-resource-task-construction.png

A task may be linked to a product. When the task is set as being a construction task, this means that the task results in this wall being constructed.

Source: IfcProcess