#### 5.3.3.3 IfcProcedure

| Procédure
| Vorgehen

An IfcProcedure is a logical set of actions to be taken in response to an event or to cause an event to occur.

> HISTORY New entity in IFC2x2

> IFC4 CHANGE ProcedureType renamed to PredefinedType and made optional (upward compatible). Where rules WR1 and WR2 have been removed.

Use definitions

IfcProcedure is used to capture information about stepped processes such as calibration, start/stop procedures for equipment items, designated actions to take in the event of an emergency etc. A procedure is not a task, but may describe a set of tasks and their order of occurrence in response to or to cause an event.

As shown in Figure 11, IfcProcedure does not restrict anything but describes specific steps of how something should happen. While a procedure does control/restrict in the sense of indicating "this is how the task should be performed" by nature of describing inner detail, this is not different than parts of a product indicating "this is how the parts should be assembled". Consequently, it doesn't restrict the outer item as a whole but provides inner detail of the item.

Figure 43 — Procedure relationships

## Building Automation

Procedures represent calls to perform particular actions. Procedure types indicate the actual instructions to follow, which are referenced by procedure occurrences.

Procedures may be defined globally (declared on IfcProject using IfcRelDeclares) to indicate a global procedure that may be invoked, commonly referred to as a “scene” in lighting control applications, for which users may select from control panel devices.

Procedures may be called from within tasks (commonly referred to as “programs” in climate control applications), and may execute in series or parallel according to how they are sequenced within the nesting task.

Procedures may result in event triggers, and may be called in response to handling events.

Procedures may have input and output parameters in the form of property sets, which are defined by property set templates defined on corresponding IfcProcedureType objects.

The following concepts are inherited at supertypes:

- IfcRoot: Revision Control

Instance diagram

Identity

The Identity concept applies to this entity.

Exchange |  |  |  |  |
--- | --- | --- | --- | --- | ---
Import |  |  |  |  |
Export |  |  |  |  |

Object Typing

The Object Typing concept applies to this entity as shown in Table 13.

Type
IfcProcedureType
Table 13 — IfcProcedure Object Typing

Exchange |  |  |  |  |
--- | --- | --- | --- | --- | ---
Import |  |  |  |  |
Export |  |  |  |  |

Property Sets

The Property Sets concept applies to this entity.

Properties on procedures indicate parameter values to be included with the procedure. The direction of each parameter is defined by IfcSimplePropertyTemplate.AccessState which must be READWRITE for input parameters and READONLY for output parameters.

Exchange |  |  |  |  |
--- | --- | --- | --- | --- | ---
Import |  |  |  |  |
Export |  |  |  |  |

XSD Specification:

<xs:element name="IfcProcedure" type="ifc:IfcProcedure" substitutionGroup="ifc:IfcProcess" nillable="true"/>
<xs:complexType name="IfcProcedure">
<xs:complexContent>
<xs:extension base="ifc:IfcProcess"/>
</xs:complexContent>
</xs:complexType>

EXPRESS Specification:

ENTITY IfcProcedure

| SUBTYPE OF IfcProcess;

PredefinedType | : | OPTIONAL IfcProcedureTypeEnum;

| WHERE

HasName | : | EXISTS(SELF\IfcRoot.Name);
CorrectPredefinedType | : | NOT(EXISTS(PredefinedType)) OR (PredefinedType <> IfcProcedureTypeEnum.USERDEFINED) OR ((PredefinedType = IfcProcedureTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));

END_ENTITY;

EXPRESS-G diagram

Attribute Definitions:

PredefinedType | : | Identifies the predefined types of a procedure from which the type required may be set.

Formal Propositions:

HasName | : | The Name attribute should be inserted to describe the task name.
CorrectPredefinedType | : | Either the PredefinedType attribute is unset, or the inherited attribute ObjectType must be asserted when the value of PredefinedType is set to USERDEFINED.

Inheritance Graph:

ENTITY IfcProcedure

| ENTITY IfcRoot

GlobalId | : | IfcGloballyUniqueId;
OwnerHistory | : | OPTIONAL IfcOwnerHistory;
Name | : | OPTIONAL IfcLabel;
Description | : | OPTIONAL IfcText;

| ENTITY IfcObjectDefinition

| INVERSE

HasAssignments | : | SET OF IfcRelAssigns FOR RelatedObjects;
Nests | : | SET [0:1] OF IfcRelNests FOR RelatedObjects;
IsNestedBy | : | SET OF IfcRelNests FOR RelatingObject;
HasContext | : | SET [0:1] OF IfcRelDeclares FOR RelatedDefinitions;
IsDecomposedBy | : | SET OF IfcRelAggregates FOR RelatingObject;
Decomposes | : | SET [0:1] OF IfcRelAggregates FOR RelatedObjects;
HasAssociations | : | SET OF IfcRelAssociates FOR RelatedObjects;

| ENTITY IfcObject

ObjectType | : | OPTIONAL IfcLabel;

| INVERSE

IsDeclaredBy | : | SET [0:1] OF IfcRelDefinesByObject FOR RelatedObjects;
Declares | : | SET OF IfcRelDefinesByObject FOR RelatingObject;
IsTypedBy | : | SET [0:1] OF IfcRelDefinesByType FOR RelatedObjects;
IsDefinedBy | : | SET OF IfcRelDefinesByProperties FOR RelatedObjects;

| ENTITY IfcProcess

Identification | : | OPTIONAL IfcIdentifier;
LongDescription | : | OPTIONAL IfcText;

| INVERSE

| ENTITY IfcProcedure

PredefinedType | : | OPTIONAL IfcProcedureTypeEnum;

END_ENTITY;

Link to this page