Class Ifc4x2::IfcProjectOrder

Nested Relationships

This class is a nested type of Struct Ifc4x2.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x2::IfcProjectOrder : public Ifc4x2::IfcControl

A project order is a directive to purchase products and/or perform work, such as for construction or facilities management.

Project orders are typically formal contracts between two organizations, where cost and time information may be rigid or flexible according to contained schedule types and constraints.

HISTORY New entity in IFC 2.0 IFC2x4 CHANGE Attribute ‘ID’ changed to Identification and promoted to supertype IfcControl. Attribute ‘LongDescription’ added.

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Refer to the documentation at the supertype IfcControl and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity according to the PredefinedType attribute:

Pset_ProjectOrderChangeOrder (CHANGEORDER) Pset_ProjectOrderMaintenanceWorkOrder (MAINTENANCEWORKORDER) Pset_ProjectOrderMoveOrder (MOVEORDER) Pset_ProjectOrderPurchaseOrder (PURCHASEORDER) Pset_ProjectOrderWorkOrder (WORKORDER)

Declaration Use Definition The IfcProjectOrder may be declared within the project using the IfcRelDeclares relationship where RelatingContext refers to the single IfcProject and RelatedDefinitions contains the IfcProjectOrder. Alternatively, if the IfcProjectOrder is aggregated within an IfcWorkPlan, then it shall not have a direct declaration relationship (whereas the containing work plan may have a declaration relationship).

Composition Use Definition As shown in Figure 160, an IfcProjectOrder may be aggregated into components using IfcRelAggregates where RelatingObject refers to the enclosing IfcProjectOrder and RelatedObjects contains one or more components. Aggregation use is defined for the following predefined types:

(All Types): May contain IfcCostSchedule components. A cost schedule may indicate costs and quantities where the cost schedule type may designate whether rates and/or quantities are estimated or final. Such cost schedule may have assigned cost items indicating detail, where each cost item may have assigned products, processes, or resources. WORKORDER: May contain IfcWorkSchedule components. A work schedule may indicate tasks and scheduled times where the work schedule type may designate whether tasks and/or times are planned or actual. Such work schedule may have assigned tasks indicating detail, where tasks may be assigned to products and may have assigned resources.

The IfcProjectOrder may be nested into sub-items using IfcRelNests where RelatingObject refers to the enclosing IfcProjectOrder and RelatedObjects contains one or more sub-items. Nesting use is defined for the following predefined types:

WORKORDER: May contain IfcProjectOrder sub-items having PredefinedType CHANGEORDER. A work order may be nested into change orders to indicate contract ammendment, in order of issue.

Figure 161 — Project order composition

Assignment Use Definition As shown in Figure 161, an IfcProjectOrder may be assigned to the following entities using relationships as indicated:

IfcActor (IfcRelAssignsToActor): Organization issuing the order such as an owner or contractor.

The IfcProjectOrder may have assignments of its own using the IfcRelAssignsToControl relationship where RelatingControl refers to the IfcProjectOrder and RelatedObjects contains one or more objects of the following types: IfcActor: Organization(s) contracted to fulfill the order, typically a single contractor, subcontractor, or supplier.

Figure 162 — Project order assignment

Approval Use Definition Approvals may be associated to indicate the status of acceptance or rejection using the IfcRelAssociatesApproval relationship where RelatingApproval refers to an IfcApproval and RelatedObjects contains the IfcProjectOrder. Approvals may be split into sub-approvals using IfcApprovalRelationship to track approval status separately for each party where RelatingApproval refers to the higher-level approval and RelatedApprovals contains one or more lower-level approvals. The hierarchy of approvals implies sequencing such that a higher-level approval is not executed until all of its lower-level approvals have been accepted.

Public Types

typedef IfcTemplatedEntityList<IfcProjectOrder> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcProjectOrder.

::Ifc4x2::IfcProjectOrderTypeEnum::Value PredefinedType() const

Predefined generic type for a project order that is specified in an enumeration. There may be a property set given specificly for the predefined types.

IFC2x4 CHANGE The attribute has been made optional.

void setPredefinedType(::Ifc4x2::IfcProjectOrderTypeEnum::Value v)
bool hasStatus() const

Whether the optional attribute Status is defined for this IfcProjectOrder.

std::string Status() const

The current status of a project order.Examples of status values that might be used for a project order status include:


void setStatus(std::string v)
bool hasLongDescription() const

Whether the optional attribute LongDescription is defined for this IfcProjectOrder.

std::string LongDescription() const

A detailed description of the project order describing the work to be completed.

void setLongDescription(std::string v)
const IfcParse::entity &declaration() const
IfcProjectOrder(IfcEntityInstanceData *e)
IfcProjectOrder(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, boost::optional<std::string> v6_Identification, boost::optional<::Ifc4x2::IfcProjectOrderTypeEnum::Value> v7_PredefinedType, boost::optional<std::string> v8_Status, boost::optional<std::string> v9_LongDescription)

Public Static Functions

const IfcParse::entity &Class()