Difference between revisions of "IFC - Industry Foundation Classes/IFC concepts/IFC sequence concepts"

From Wiki.OSArch
Line 195: Line 195:
 
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.
 
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.
  
== A task may inherit a calendar from a parent task ==
+
== A task without a calendar inherits the calendar from a parent task ==
  
 
<!--
 
<!--
Line 213: Line 213:
 
[[File:Ifc-concept-sequence-task-calendar-inheritance.png]]
 
[[File:Ifc-concept-sequence-task-calendar-inheritance.png]]
  
If a task does not have a calendar assigned to it, it may inherit the calendar from the first parent task that has a calendar. This inheritance makes it easy to assign default calendars to a work schedule and only override as necessary in more specific child tasks.
+
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 work schedule and only override as necessary in more specific child tasks.
  
== A task's calendar may override the availability of an inherited calendar ==
+
== A calendar may override the availability of an inherited calendar ==
  
 
<!--
 
<!--
Line 222: Line 222:
 
   edge [ fontsize=10 ];
 
   edge [ fontsize=10 ];
 
   IfcRelAssignsToControl -> IfcWorkCalendar [ label="RelatingControl" ];
 
   IfcRelAssignsToControl -> IfcWorkCalendar [ label="RelatingControl" ];
   IfcRelAssignsToControl -> IfcTask [ label="RelatedObjects" ];
+
   IfcRelAssignsToControl -> secondcalendar [ label="RelatedObjects" ];
 
   IfcRelAssignsToControl [color="pink"]
 
   IfcRelAssignsToControl [color="pink"]
  IfcRelNests -> IfcTask [label="RelatingObject"]
 
  child [ label="IfcTask" ]
 
  secondcontrol [label="IfcRelAssignsToControl"]
 
  IfcRelNests [ color="pink"]
 
  IfcRelNests -> child [label="RelatedObjects"]
 
  secondcontrol -> child [label="RelatedObjects"]
 
 
   secondcalendar [label="IfcWorkCalendar"]
 
   secondcalendar [label="IfcWorkCalendar"]
  secondcontrol -> secondcalendar [label="RelatingControl"]
 
  secondcontrol [color="pink"]
 
 
   IfcWorkCalendar -> IfcWorkTime [label="WorkingTime"]
 
   IfcWorkCalendar -> IfcWorkTime [label="WorkingTime"]
   secondworktime [label="IfcWorkTime"]
+
   worktime2 [label="IfcWorkTime"]
   secondcalendar -> secondworktime [label="ExceptionTime"]
+
   secondcalendar -> worktime2 [label="ExceptionTime"]
 
}
 
}
 
-->
 
-->
Line 241: Line 233:
 
[[File:Ifc-concept-sequence-task-calendar-inheritance-override.png]]
 
[[File:Ifc-concept-sequence-task-calendar-inheritance-override.png]]
  
If a task has a calendar that only defines exception times, then those exception times override the availability of any inherited calendars.
+
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.
 +
 
 +
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.
  
Note: this logic may be found in the documentation for IfcWorkCalendar. We think it is overcomplicated and would wish to have it removed.
+
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.
  
 
== A task may have sequential relationships to other tasks ==
 
== A task may have sequential relationships to other tasks ==

Revision as of 21:33, 25 July 2021

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.

TODO:

  • 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.

A work plan contains multiple schedules, used for baseline, planned, and actual schedules

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.


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.


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.


A work schedule may nest other work schedules

This is possible, but no legitimate usecase for this has been identified.

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.

A project may contain tasks

This is possible, but no legitimate usecase for this has been identified.

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.

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).

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.

A task may be assigned a calendar, determining when that 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.

A task without a calendar inherits the calendar from a parent task

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 work schedule and only override as necessary in more specific child tasks.

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.

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.

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.

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.