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

From Wiki.OSArch

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{IFC_Documentation}}
 
 
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.
 
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.
  
Line 13: Line 12:
 
* IfcLagTime
 
* IfcLagTime
 
* IfcTaskType
 
* IfcTaskType
 +
* IfcEvent
 +
* IfcProcedure
  
 
Bits that are currently skipped for further analysis:
 
Bits that are currently skipped for further analysis:
  
 
* IfcTask: Quantities of resources consumed by the task are dealt with by defining the IfcElementQuantity for the resource and not at the instance of IfcTask.
 
* IfcTask: Quantities of resources consumed by the task are dealt with by defining the IfcElementQuantity for the resource and not at the instance of IfcTask.
 +
* IfcTask: Object Typing. Looks complicated.
 +
* IfcTask: An IfcTask may in turn nest other IfcTask, IfcProcedure or IfcEvent entities.
 +
* IfcTask: IfcTask's can be triggered or can trigger IfcEvent's, which is also defined through the relationship IfcRelSequence.
 
* IfcTask: Constraints may be applied to a task to indicate fixed task duration, fixed start or fixed finish, where IfcMetric.ReferencePath is set to the corresponding attribute on the IfcTaskTime entity.
 
* IfcTask: Constraints may be applied to a task to indicate fixed task duration, fixed start or fixed finish, where IfcMetric.ReferencePath is set to the corresponding attribute on the IfcTaskTime entity.
  
Line 223: Line 227:
 
Source: IfcWorkCalendar
 
Source: IfcWorkCalendar
  
== A work calendar can be inherited through child tasks, procedures, and events ==
+
== A work calendar can be inherited through child tasks ==
  
 
<!--
 
<!--
Line 242: Line 246:
  
 
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.
 
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.
 
This same inheritance applies to procedures and events.
 
  
 
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.
 
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.
Line 490: Line 492:
 
<!--
 
<!--
 
digraph {
 
digraph {
   node [ shape=rect, color=lightblue ];
+
   node [ shape=rect ];
 
   edge [ fontsize=10 ];
 
   edge [ fontsize=10 ];
 
   predecessor [label="IfcTask"]
 
   predecessor [label="IfcTask"]
  IfcRelSequence [ color=pink]
 
 
   IfcRelSequence -> predecessor [label="RelatingProcess"]
 
   IfcRelSequence -> predecessor [label="RelatingProcess"]
 
   IfcRelSequence -> FINISH_START [label="SequenceType"]
 
   IfcRelSequence -> FINISH_START [label="SequenceType"]
 
   IfcRelSequence -> IfcLagTime [label="TimeLag"]
 
   IfcRelSequence -> IfcLagTime [label="TimeLag"]
  FINISH_START [shape=ellipse]
 
 
   P1D [shape=ellipse]
 
   P1D [shape=ellipse]
 
   ELAPSEDTIME [shape=ellipse]
 
   ELAPSEDTIME [shape=ellipse]
Line 506: Line 506:
 
   formwork [shape=ellipse, label="Formwork"]
 
   formwork [shape=ellipse, label="Formwork"]
 
   pour [shape=ellipse, label="Concrete Pour"]
 
   pour [shape=ellipse, label="Concrete Pour"]
   predecessor -> formwork [label=Name]
+
   predecessor -> formwork [label=DurationType]
   successor -> pour [label=Name]
+
   successor -> pour [label=ScheduleDuration]
 
}
 
}
 
-->
 
-->
Line 639: Line 639:
 
Source: IfcTask
 
Source: IfcTask
  
== A task, event, or procedure may contain properties ==
+
== A task may contain properties ==
  
 
<!--
 
<!--
Line 660: Line 660:
 
[[File:Ifc-concept-sequence-task-pset.png]]
 
[[File:Ifc-concept-sequence-task-pset.png]]
  
A task, event, or procedure may contain properties. Typically this is used for risk assessment. For logistic tasks, it may also contain properties for packing instructions.
+
A task may contain properties. Typically this is used for risk assessment. For logistic tasks, it may also contain properties for packing instructions.
  
 
Source: IfcTask
 
Source: IfcTask
Line 681: Line 681:
  
 
Source: IfcTask
 
Source: IfcTask
 
== A project task may be based off a typical task type or template from a library of tasks ==
 
 
<!--
 
digraph {
 
  node [ shape=rect, color=lightblue ];
 
  edge [ fontsize=10 ];
 
  IfcRelDefinesByType [ color=pink]
 
  IfcRelDefinesByType -> IfcTask [label="RelatedObjects"]
 
  IfcRelDefinesByType -> IfcTaskType [label="RelatingType"]
 
}
 
-->
 
 
[[File:Ifc-concept-sequence-task-type.png]]
 
 
Whereas an IfcTask represents an actual task within a project's work schedule, it may be derived from a task template, also called a task type. Task types are not project specific and may typically be shared within a library of tasks to aid planners in creating schedules.
 
 
Source: IfcTask, IfcTaskType
 
 
== A task type can nest a task type ==
 
 
<!--
 
digraph {
 
  node [ shape=rect, color=lightblue ];
 
  edge [ fontsize=10 ];
 
 
 
  IfcRelNests [color=pink]
 
  IfcRelNests -> IfcTaskType [label="RelatingObject"]
 
  IfcRelNests -> subtask1 [label="RelatedObjects"]
 
  subtask1 [label="IfcTaskType"]
 
}
 
-->
 
 
[[File:Ifc-concept-sequence-task-type-nest-task-type.png]]
 
 
Note: It is currently ambiguous as to what this means.
 
 
Source: IfcTaskType
 
 
== A task type can nest a task ==
 
 
<!--
 
digraph {
 
  node [ shape=rect, color=lightblue ];
 
  edge [ fontsize=10 ];
 
 
 
  IfcRelNests [color=pink]
 
  IfcRelNests -> IfcTaskType [label="RelatingObject"]
 
  IfcRelNests -> subtask1 [label="RelatedObjects"]
 
  subtask1 [label="IfcTask"]
 
}
 
-->
 
 
[[File:Ifc-concept-sequence-task-type-nest-task.png]]
 
 
Note: It is currently ambiguous as to what this means.
 
 
Source: IfcTaskType
 
 
== A task type can nest a task, that is also typed ==
 
 
<!--
 
digraph {
 
  node [ shape=rect, color=lightblue ];
 
  edge [ fontsize=10 ];
 
 
 
  IfcRelNests [color=pink]
 
  IfcRelNests -> IfcTaskType [label="RelatingObject"]
 
  IfcRelNests -> subtask1 [label="RelatedObjects"]
 
  subtask1 [label="IfcTask"]
 
 
 
  tasktype1 [label="IfcTaskType"]
 
  IfcRelDefinesByType [color=pink]
 
  IfcRelDefinesByType -> subtask1 [label="RelatedObjects"]
 
  IfcRelDefinesByType -> tasktype1 [label="RelatingType"]
 
}
 
-->
 
 
[[File:Ifc-concept-sequence-task-type-nest-task-with-type.png]]
 
 
Note: it is currently ambiguous as to what this means.
 
 
Source: IfcTaskType, IfcRelDefinesByObject
 
 
== When a task type is used in a project, its child tasks are linked to the project tasks ==
 
 
<!--
 
digraph {
 
  node [ shape=rect, color=lightblue ];
 
  edge [ fontsize=10 ];
 
 
 
  { rank = same; IfcRelDefinesByType }
 
  { rank = max; IfcRelNests irelnests }
 
  { rank = sink; IfcRelDefinesByObject }
 
 
 
  IfcRelDefinesByType [ color=pink]
 
  IfcRelDefinesByType -> IfcTask [label="RelatedObjects"]
 
  IfcRelDefinesByType -> IfcTaskType [label="RelatingType"]
 
 
  irelnests [label="IfcRelNests", color=pink]
 
  irelnests -> IfcTask [label="RelatingObject"]
 
  irelnests -> isubtask1 [label="RelatedObjects"]
 
  isubtask1 [label="IfcTask"]
 
 
  IfcRelNests [color=pink]
 
  IfcRelNests -> IfcTaskType [label="RelatingObject"]
 
  IfcRelNests -> subtask1 [label="RelatedObjects"]
 
  subtask1 [label="IfcTask"]
 
 
 
  IfcRelDefinesByObject [color=pink]
 
  IfcRelDefinesByObject -> isubtask1 [label="RelatedObjects"]
 
  IfcRelDefinesByObject -> subtask1 [label="RelatingObject"]
 
 
}
 
-->
 
 
[[File:Ifc-concept-sequence-task-type-definesbyobject.png]]
 
 
When a task type with subtasks is used in a project, it creates corresponding task instances in your task tree. To correlate these task instances back to the task type, an object relationship is created.
 
 
Note: usecases and workflows of this is still currently ambiguous. Also, there is a discrepancy where the documentation in IfcTaskType describes a nesting relationship, whereas the IfcRelDefinesByObject documentation describes an aggregation relationship.
 
 
Source: IfcTaskType, IfcRelDefinesByObject
 
 
[[Category:Industry Foundation Classes (IFC)]]
 

Please note that all contributions to Wiki.OSArch are considered to be released under the Creative Commons Attribution-ShareAlike (see Wiki.OSArch:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: