IFC 4.3.x development

5.3.3.5 IfcRelSequence

Change log

IFC4

additions attributes UserDefinedSequenceType
additions where_rules AvoidInconsistentSequence
additions where_rules CorrectSequenceType
deletions where_rules WR1
modificationsattributes SequenceType is_optionalChanged from False to True
modificationsattributes TimeLag definition Changed from IfcTimeMeasure to IfcLagTime
modificationsattributes TimeLag is_optional Changed from False to True

5.3.3.5.1 Semantic definitions at the entity

IfcRelSequence is a sequential relationship between processes where one process must occur before the other in time and where the timing of the relationship may be described as a type of sequence. The relating process (IfcRelSequence.RelatingProcess) is considered to be the predecessor in the relationship (has precedence) whilst the related process (IfcRelSequence.RelatedProcess) is the successor.

IfcRelSequence is defined as one-to-one relationship; therefore it assigns one predecessor to one successor.

HISTORY  New entity in IFC1.0.

IFC4 CHANGE  Relocated to IfcProcessExtension schema. TimeLag and SequenceType made optional. USERDEFINED added to the IfcSequenceType enumeration. UserDefinedSequenceType attribute added. WHERE rule controlling use of the USERDEFINED enumeration added.

Use definitions

IfcRelSequence is used to describe the logical sequence relationship that exists between two processes. This logical relationship identifies that there is a predecessor or relating process and a successor or related process. In IFC, there may be one predecessor and one successor in the relationship. Many occurrences of IfcRelSequence may exist to describe the sequence relationships of a predecessor task with many successor tasks or of many predecessor tasks with one successor task, thus enabling a m:n sequence relationship between tasks. Please note that sequence relationships can be used to define dependencies between process occurrences but also between process types (for further information see IfcRelDefinesByObject and IfcTaskType). In case of defining dependencies between process occurrences sequence relationships should stay within the limits of a directed, non-cyclic graph.

A sequence type may be set for a sequence. For tasks assigned to a work schedule, it is expected that the sequence type will be asserted. For a process map, where the sequence relationship between processes is simply a logical flow, it need not be asserted.

A time lag may be assigned to a sequence, and the sequence type defines the way in which the time lag applies to the sequence either as a ratio or percentage of time duration (e.g. start successor task when predecessor is 50% complete) or as a time measure (e.g. start successor task 1 week after commencement of the predecessor task). Care should be used when assigning a time lag to a sequence depending on the setting of the sequence type since there is no checking that the time lag value is in keeping with the sequence type set.

5.3.3.5.1 Attributes

#Attribute Type Description
IfcRoot
1GlobalId IfcGloballyUniqueId Assignment of a globally unique identifier within the entire software world.
2OwnerHistory OPTIONAL IfcOwnerHistoryAssignment of the information about the current ownership of that object, including owning actor, application, local identification and information captured about the recent changes of the object,

> NOTE  only the last modification in stored - either as addition, deletion or modification.

> IFC4 CHANGE  The attribute has been changed to be OPTIONAL.
3Name OPTIONAL IfcLabel Optional name for use by the participating software systems or users. For some subtypes of IfcRoot the insertion of the Name attribute may be required. This would be enforced by a where rule.
4Description OPTIONAL IfcText Optional description, provided for exchanging informative comments.
IfcRelationship
IfcRelConnects
IfcRelSequence
5RelatingProcess IfcProcess Reference to the process, that is the predecessor.
6RelatedProcess IfcProcess Reference to the process, that is the successor.
7TimeLag OPTIONAL IfcLagTime Time duration of the sequence, it is the time lag between the

predecessor and the successor as specified by the

SequenceType.
8SequenceType OPTIONAL IfcSequenceEnumThe way in which the time lag applies to the sequence.
9UserDefinedSequenceTypeOPTIONAL IfcLabel Allows for specification of user defined type of the sequence

beyond the enumeration values (START_START, START_FINISH,

FINISH_START, FINISH_FINISH) provided by SequenceType

attribute of type IfcSequenceEnum. When a value is

provided for attribute UserDefinedSequenceType in

parallel the attribute SequenceType shall have

enumeration value USERDEFINED.



> IFC4 CHANGE Attribute added

5.3.3.5.2 Entity inheritance

dot_inheritance IfcRelSequence IfcRelSequence IfcRelConnects IfcRelConnects IfcRelSequence->IfcRelConnects IfcRelConnects_children 15 more... IfcRelConnects_children->IfcRelConnects IfcRelationship IfcRelationship IfcRelConnects->IfcRelationship IfcRelationship_children 5 more... IfcRelationship_children->IfcRelationship IfcRoot IfcRoot IfcRelationship->IfcRoot IfcObjectDefinition IfcObjectDefinition IfcObjectDefinition->IfcRoot IfcPropertyDefinition IfcPropertyDefinition IfcPropertyDefinition->IfcRoot

5.3.3.5.3 Definitions applying to General Usage

5.3.3.5.3.1 Identity

IfcRoot assigns the globally unique ID. In addition it may provide for a name and a description about the concept.

5.3.3.5.3.2 Revision Control

Ownership, history, and merge state is captured using IfcOwnerHistory.

5.3.3.5.4 Formal representations

ENTITY IfcRelSequence
 SUBTYPE OF (IfcRelConnects);
	RelatingProcess : IfcProcess;
	RelatedProcess : IfcProcess;
	TimeLag : OPTIONAL IfcLagTime;
	SequenceType : OPTIONAL IfcSequenceEnum;
	UserDefinedSequenceType : OPTIONAL IfcLabel;
 WHERE
	AvoidInconsistentSequence : RelatingProcess :<>: RelatedProcess;
	CorrectSequenceType : (SequenceType <> IfcSequenceEnum.USERDEFINED) OR ((SequenceType = IfcSequenceEnum.USERDEFINED) AND EXISTS(UserDefinedSequenceType));
END_ENTITY;