IfcProcedure

Definition from IAI: An IfcProcedure is an identifiable step to be taken within a process that is considered to occur over zero or a non-measurable period of time.

> HISTORY:New entity in IFC 2x2

Use Definitions

An instance of IfcProcedure may nest other instances of IfcProcedure using IfcRelNests. Instances of IfcProcedure, since they are subtypes of IfcProcess, may also participate in sequence relationships using IfcRelSequences.

IfcProcedure is used to capture information about stepped processes such as calibration, start/stop procedures for equipment items etc.

Note that a particular type of IfcProcedure is a caution, warning or other form of advisory note. Typically, it is anticipated that such a procedure would be assigned to the specific IfcProcess for which it gives advice using IfcRelAssignsToProcess.

Note that both nesting and sequencing can be supported concurrently. For example, B, C and D may be procedures nested in procedure A. Sequence relationships can also be established such that B precedes C and C precedes D.

EXPRESS specification:

ENTITY IfcProcedure
SUBTYPE OF ( | IfcProcess);
ProcedureID | : | IfcIdentifier;
ProcedureType | : | IfcProcedureTypeEnum;
UserDefinedProcedureType | : | OPTIONAL IfcLabel;
WHERE
WR1 | : | SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.Decomposes | NOT('IFCKERNEL.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR2 | : | SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.IsDecomposedBy | NOT('IFCKERNEL.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR3 | : | EXISTS(SELF\IfcRoot.Name);
WR4 | : | (ProcedureType <> IfcProcedureTypeEnum.USERDEFINED) OR ((ProcedureType = IfcProcedureTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcProcedure.UserDefinedProcedureType));
END_ENTITY;

Attribute definitions:

ProcedureID | : | An identifying designation given to a procedure.
ProcedureType | : | Predefined procedure types from which that required may be set.
UserDefinedProcedureType | : | A user defined procedure type.

Formal Propositions:

WR1 | : | Restrict the relationship 'Nests' inherited from IfcObject to IfcRelNests.
WR2 | : | Restrict the relationship 'IsNestedBy' inherited from IfcObject to IfcRelNests.
WR3 | : | The Name attribute should be inserted to describe the task name.
WR4 | : | The attribute UserDefinedProcedureType must be asserted when the value of the IfcProcedureTypeEnum is set to USERDEFINED.

Inheritance graph

ENTITY IfcProcedure;
ENTITY IfcRoot;
GlobalId | : | IfcGloballyUniqueId;
OwnerHistory | : | IfcOwnerHistory;
Name | : | OPTIONAL IfcLabel;
Description | : | OPTIONAL IfcText;
ENTITY IfcObjectDefinition;
INVERSE
HasAssignments | : | SET OF IfcRelAssigns FOR RelatedObjects;
IsDecomposedBy | : | SET OF IfcRelDecomposes FOR RelatingObject;
Decomposes | : | SET [0:1] OF IfcRelDecomposes FOR RelatedObjects;
HasAssociations | : | SET OF IfcRelAssociates FOR RelatedObjects;
ENTITY IfcObject;
ObjectType | : | OPTIONAL IfcLabel;
INVERSE
IsDefinedBy | : | SET OF IfcRelDefines FOR RelatedObjects;
ENTITY IfcProcess;
INVERSE
OperatesOn | : | SET OF IfcRelAssignsToProcess FOR RelatingProcess;
IsSuccessorFrom | : | SET OF IfcRelSequence FOR RelatedProcess;
IsPredecessorTo | : | SET OF IfcRelSequence FOR RelatingProcess;
ENTITY IfcProcedure;
ProcedureID | : | IfcIdentifier;
ProcedureType | : | IfcProcedureTypeEnum;
UserDefinedProcedureType | : | OPTIONAL IfcLabel;
END_ENTITY;