Log In   View a printable version of the current page.
Control Maintenance Work Order (FP)
Added by Jeffrey Wix, last edited by Jeffrey Wix on Jan 28, 2007  (view change)
Labels: 
(None)


Control Maintenance Work Order

Overview

A maintenance work order is a particular type of project order that describes a set of tasks that need to be undertaken to maintain an item of plant, equipment, structure or building fabric at a satisfactory operational state. Other types of project order include change orders, move orders, purchase orders and project work orders. These are all dealt with in separate functional parts.
A maintenance work order brings together all of the tasks that need to be performed on one or more assets at a particular point in time. Each task may have associated with it a number of items that need to be consumed in the performance of the task as spares, tools or equipment that assist the task or items consumed during the task (e.g. lubricants).
Each task on a work order may have an associated cost that is derived from the cost of the labor used in its performance and the spares, tools, equipment and consumables that it requires. As well as individual tasks, the complete work order may also have a cost.
Tasks on a work order may individually have labor allocations; however it is more usual for the work order as a whole to have the actors who will execute the work identified. Actor roles may need to be equivalent to any skillsets indicated as needed for the task within a preceding maintenance plan.
Either tasks, or the whole work order, may have associated constraints. These may describe such matters as health and safety requirements or hazards associated with working on an asset etc.
Tasks on a work order, or the complete work order, may be subject to approvals
Descriptions of the relationships between tasks and maintenance work orders are given below. The relationship between tasks and a maintenance schedule is described in the functional part fp_control_maintenance_schedule. Since tasks are related both to the schedule and to a maintenance work order, it is therefore possible to understand the maintenance work order in the context of the schedule.

For a maintenance work order, the following information will be needed:

  • Descriptive information about the work order and the 'job' that is represented by the work order
  • Type of work order
  • Type of maintenance required by the work order.
  • Priority of any fault that the work order is to rectify
  • Priority of action in the location where the work order is to be executed
  • The scheduled frequency of the work order
  • Status of the work order
  • The maintenance tasks that are to be undertaken with, for each task:
    • Identity of the task (using the general form of identification or breakdown structure adopted for the project)
    • The name of the task (i.e. how it is presented)
    • Any further useful description (which may be provided if required).
    • Indication that this is not a milestone task (note that a task is required to be identified as to whether or not it is a milestone; this is not considered to be appropriate for a maintenance plan and the value should therefore be set to FALSE by default.
  • The assets on which the work is done
  • The time that may be allocated to the task

Suggested modifications to IFC model and documentation

  • In IfcRelAssignsTasks, the WHERE rule WR3 requires that the relating control should be of type IfcWorkControl. This would preclude the use of the schedule time control within a project order. There should be no exclusion of this capability within a project order. Therefore, either the WHERE rule should be removed or (more probably) the rule should be amended to allow for time controls on project orders.
  • IfcTimeMeasure is indicated in documentation as being generally measured in seconds but needs to also be allowed in different time units according to implementation agreements.
  • In the property set Pset_ProjectOrderMaintenanceWorkOrder, the property MaintenaceType is an incorrect spelling and should be MaintenanceType.

Results

Specification of a maintenance work order including the tasks that are to be carried out and the assets on which they will be performed. Additionally, any actors, costs, constraints and/or approvals associated with the maintenance work order will be defined.

Information Needed Entity/Pset/Functional Part MAN REC OPT
CONCEPT: Specify a maintenance work order that establishes work tasks to be completed and the asset on which the work is to be done
 
For the purposes of this functional part, it is assumed that specific detail of time when the work is to be carried out are dealt with in the maintenance schedule.
       
Define the maintenance work order to which maintenance tasks will be assigned.        

Assert general attributes for the work order

       

Set the global unique identifier

IfcProjectOrder.GlobalId::fcGloballyUniqueId    

Assert the owner history of the work order

IfcProjectOrder.OwnerHistory::fp_apply_owner_history    

Specify a name for the work order

 

Note that for a work order, the order ID (see below) is the primary presentation and not the name which, in this case, does not need to be asserted.

IfcProjectOrder.Name::IfcLabel    

Specify a description for the work order

 

Specification of a description is optional but can provide valuable further information

IfcProjectOrder.Description::IfcLabel    

Assert specific attributes for the work order

       

Assign a unique identification to the project order that enables its differentiation from other project orders.

IfcProjectOrder.ID::IfcIdentifier    

Set the type of project order

 

For the purposes of this functional part, the type of project order must be set to MAINTENANCEWORKORDER

IfcProjectOrder.PredefinedType::IfcProjectOrderTypeEnum = MAINTENANCEWORKORDER    

Set the current status of the project order.

 

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

- PLANNED

- REQUESTED

- APPROVED

- ISSUED

- STARTED

- DELAYED

- DONE

IfcProjectOrder.Status::IfcLabel    

Assert values of the maintenance work order within the property set Pset_ProjectOrderMaintenanceWorkOrder

       

Set a textual description of the products that require the work.

 

This is a description of the asset that may be used. Generally, it is expected that the description attribute of IfcAsset would achieve the same result.

Pset_ProjectOrderMaintenanceWorkOrder. ProductDescription::IfcPropertySingleValue::IfcText    

Provide a short description of the job requested.

 

May be used to provide a terse narrative of the jobs/work types within the work order

Pset_ProjectOrderMaintenanceWorkOrder. ShortJobDescription::IfcPropertySingleValue::IfcText    

Provide a long description of the job requested.

 

May be used to provide a long narrative of the jobs/work types within the work order

Pset_ProjectOrderMaintenanceWorkOrder. LongJobDescription::IfcPropertySingleValue::IfcText    

Work type requested in circumstances where there are categorizations of types of work task.

 

This property should be used to describe the work type of the work order generally. It could be used to identify a remedial task, minor work task, electrical task etc.

Pset_ProjectOrderMaintenanceWorkOrder. WorkTypeRequested::IfcPropertySingleValue::IfcText    

Set the contractual type of the work

 

This may be used to provide a general indication of whether the work order is being undertaken as part of a long term maintenance contract, or the result of a specific task order or by in-house labor resources etc. IFC does not predefine values for this property but it is recommended that an agreement is made concerning the meaning of values used to aid understanding

Pset_ProjectOrderMaintenanceWorkOrder. ContractualType::IfcPropertySingleValue::IfcText    

Provide comments in the event that the job is not accomplished

 

These are anticipated as being comments that set down actions and/or requirements if the job is not completed.

Pset_ProjectOrderMaintenanceWorkOrder. IfNotAccomplished::IfcPropertySingleValue::IfcText    

Identify the predefined type of maintenance that can be done

 

Choices include:

* ConditionBased = generated as a result of the condition of an asset or artefact being less than a determined value.

*Corrective = generated as a result of an immediate and urgent need for maintenance action.

* PlannedCorrective = generated as a result of immediate corrective action being needed but with sufficient time available for the work order to be included in maintenance planning.

*Scheduled = generated as a result of a fixed, periodic maintenance requirement

 

See issue on property MaintenanceType

Pset_ProjectOrderMaintenanceWorkOrder. MaintenanceType::IfcPropertyEnumeratedValue:: PEnum_MaintenanceType    

Identify the predefined level of fault priority for the work order.

 

Choices include:

* High = action is required urgently.

* Medium = action can occur within a reasonable period of time.

* Low = action can occur when convenient.

Pset_ProjectOrderMaintenanceWorkOrder. FaultPriorityType::IfcPropertyEnumeratedValue:: PEnum_PriorityType    

Identify the predefined level of location priority for the work order.

 

Choices include:

* High = action is required urgently.

* Medium = action can occur within a reasonable period of time.

* Low = action can occur when convenient.

Pset_ProjectOrderMaintenanceWorkOrder. LocationPriorityType::IfcPropertyEnumeratedValue:: PEnum_PriorityType    

Set the period of time between expected instantiations of a work order

 

It is anticipated that this property is more effectively dealt with through the maintenance planning property set.

Pset_ProjectOrderMaintenanceWorkOrder. ScheduledFrequency:: IfcPropertySingleValue::IfcTimeMeasure    

Assert the property set for the maintenance work order

       

Define the property set the work order

 

The entity for which the property set is defined is IfcProjectOrder whilst the property set defined is type driven through the predefined type setting MAINTENANCEWORKORDER and is named Pset_ProjectOrderMaintenanceWorkOrder

fp_define_by_properties    
Determine the maintenance tasks to be undertaken. Perform the following actions for each task to be included in the work order.        

Assert general attributes for the task

       

Set the global unique identifier

IfcTask.GlobalId::fcGloballyUniqueId    

Assert the owner history of the task IfcTask.

OwnerHistory::fp_apply_owner_history    

Specify a name for the task

 

Note that this is the primary presentation of the task and is how it is described in a work order

 

This attribute must be asserted for a task

IfcTask.Name::IfcLabel    

Specify a description for the task

 

Specification of a description is optional but can provide valuable further information

IfcTask.Description::IfcLabel    

Special information about the task

       

Assert special information that may relate to a task

 

Examples that may be used include fixed duration, fixed unit, fixed work etc.

IfcTask.ObjectType::IfcLabel    

Assert specific task related attributes that are relevant to the work order

       

Set the value of the Task identifier.

 

Note that this is a reference value given to the task. It must be locally unique within the project, but is not a globally unique identifier. It may be used as a sequence number in a list of tasks 1,2,3,4 etc. or as work breakdown structure identifier as a lightweight alternative to the use of the classification capability in IFC.

IfcTask.TaskId::IfcIdentifier    

Identify if the task is a milestone.

 

Although this value must be asserted, it is not relevant to the work order. To ensure that it is taken completely out of consideration in this context, it is a RULE that the value must be asserted as FALSE for a maintenance plan.

IfcTask.IsMilestone::BOOLEAN = FALSE    

Set the current status of the task

 

The value of this attribute may vary depending on the completion of the work order. For instance, a work order may be either defined, authorized, issued or completed at different times.

IfcTask.Status::IfcLabel    

Specify the method of work to be used in carrying out the task

 

This can be used as a statement of how work should be done.

IfcTask.WorkMethod::IfcLabel    

Set the relative priority of the task (in comparison to the priorities of other tasks).

 

In certain circumstances, task priority may be established within a work order.

IfcTask.Priority::INTEGER    

A task may nest other tasks and this fact may be used to establish logical associations between tasks under a parent heading within a work order. Information about the parent task needs to be defined in the same way as for the child tasks.

Once the tasks are defined, they can be brought together into a nesting relationship.

 

Note that whilst the possibility of nested tasks is allowed for, it is not expected that this capability will be widely used in a work order

fp_nests (IfcTask)    

Define the time control information for the task in the maintenance work order

       

Set the date on which a task is actually started.

 

The scheduled start date must be greater than or equal to the earliest start date.

 

No constraint is applied to the actual start date with respect to the scheduled start date since a task may be started earlier than had originally been scheduled if circumstances allow.

 

For a maintenance work order, actual start date may be optionally set when the work order is in progress

IfcScheduleTimeControl.ActualStart::fp_select_date_time    

Set the earliest date on which a task can be started.

 

For a maintenance work order, earliest start date may be optionally set at the initial status

IfcScheduleTimeControl.EarlyStart::fp_select_date_time    

Set the latest date on which a task can be started.

 

For a maintenance work order, latest start date may be optionally set at the initial status

IfcScheduleTimeControl.LateStart::fp_select_date_time    

Set the date on which a task is scheduled to be started.

 

The scheduled start date must be greater than or equal to the earliest start date.

 

For a maintenance work order, schedule start date may be optionally set at the initial status

IfcScheduleTimeControl.ScheduleStart::fp_select_date_time    

Set the date on which a task is actually finished.

 

For a maintenance work order, actual finish date may be optionally set when the work order is completed

IfcScheduleTimeControl.ActualFinish::fp_select_date_time    

Set the earliest date on which a task can be finished.

 

For a maintenance work order, earliest finish date may be optionally set at the initial status

IfcScheduleTimeControl.EarlyFinish::fp_select_date_time    

Set the latest date on which a task can be finished.

 

For a maintenance work order, latest finish date may be optionally set at the initial status

IfcScheduleTimeControl.LateFinish::fp_select_date_time    

Set the date on which a task is scheduled to be finished.

 

The scheduled finish date must be greater than or equal to the earliest finish date.

 

For a maintenance work order, scheduled finish date may be optionally set at the initial status

IfcScheduleTimeControl.ScheduleFinish::fp_select_date_time    

Set the amount of time which is scheduled for completion of a task.

 

Scheduled Duration may be calculated as the time from scheduled start date to scheduled finish date where these values are available. Otherwise, value should be set.

 

For a maintenance work order, schedule duration may be optionally set at the initial status

IfcScheduleTimeControl.ScheduleDuration::IfcTimeMeasure    

Set the actual duration of the task.

 

Actual duration of a task in a work order may be defined when the work order has a completed status.

IfcScheduleTimeControl.ActualDuration::IfcTimeMeasure    

Set the amount of time remaining to complete a task.

 

The time remaining in which to complete a task may be determined both for tasks which have not yet started and those which have.

 

Remaining time for a task not yet started has the same value as the scheduled duration.

 

For a task already started, remaining time is calculated as the difference between the scheduled finish and the point of analysis.

 

Remaining time may be set when the work order has an 'in progress' status.

IfcScheduleTimeControl.RemainingTime::IfcTimeMeasure    

Set the amount of time during which the start or finish of a task may be varied without any effect on the overall programme of work.

 

Generally, it is not expected that this value will be asserted for a maintenance work order.

IfcScheduleTimeControl.FreeFloat::IfcTimeMeasure X X X

Set the difference between the duration available to carry out a task and the scheduled duration of the task.

 

Total Float time may be calculated as being the difference between the scheduled duration of a task and the available duration from earliest start to latest finish. Float time may be either positive, zero or negative. Where it is zero or negative, the task becomes critical.

 

Generally, it is not expected that this value will be asserted for a maintenance work order.

IfcScheduleTimeControl.TotalFloat::IfcTimeMeasure X X X

Set a flag which identifies whether a scheduled task is a critical item within the programme.

 

A task becomes critical when the total float determined above becomes zero or negative.

 

Generally, it is not expected that this value will be asserted for a maintenance work order.

IfcScheduleTimeControl.IsCritical::BOOLEAN X X X

Set the date or time at which the status of the tasks within the schedule is analyzed.

 

This value may be set for a task in a work order when the progress needs to be assessed.

IfcScheduleTimeControl.StatusTime::fp_select_date_time    

Set the difference between the late start and early start of a task.

 

Start float measures how long an task's start can be delayed and still not have an impact on the overall duration of a schedule.

 

Generally, it is not expected that this value will be asserted for a maintenance work order.

IfcScheduleTimeControl.StartFloat::IfcTimeMeasure X X X

Set the difference between the late finish and early finish of a task.

 

Finish float measures how long an task's finish can be delayed and still not have an impact on the overall duration of a schedule.

 

Generally, it is not expected that this value will be asserted for a maintenance work order.

IfcScheduleTimeControl.FinishFloat::IfcTimeMeasure X X X

Set the extent of completion expressed as a ratio or percentage.

 

This value may be set for a task in a work order when the progress needs to be assessed.

IfcScheduleTimeControl.Completion::IfcPositiveRatioMeasure    

Assign the time control information to the task

       

Specify the work order in which the task appears

 

For the purposes of this functional part, the predefined type of IfcProjectOrder must be a Maintenance Work Order.

IfcRelAssignsTasks.RelatingControl::IfcProjectOrder::PredefinedType = MAINTENANCEWORKORDER    

Specify the related objects

 

Note that for use in the context of a work order with a schedule time control, only one task can be allowed within the list of related objects. This is enforced by WHERE rules on IfcRelAssignsTasks which limit the members of the set to 1 member which must be of type IfcTask.

IfcRelAssignsTasks.RelatedObjects::IfcTask    

Set the particular type of the assignment relationship.

 

This value is used to describe the subtype of IfcObject to which the related objects belong. In the case of this functional part, occurrences of IfcTask are subtypes of IfcProcess and consequently, the value of the attribute must be set to 'PROCESS'

IfcRelAssignsTasks.RelatedObjectsType::IfcObjectTypeEnum = 'PROCESS'    

Assign the time control to the task

IfcRelAssignsTasks.TimeForTask::IfcScheduleTimeControl    

Assert the identity of the relationship

IfcRelAssignsTasks.GlobalId::IfcGloballyUniqueId    

Assert the owner history of the relationship

IfcRelAssignsTasks.OwnerHistory::fp_apply_owner_history    

Specify a name of the relationship

IfcRelAssignsTasks.Name::IfcLabel    

Specify a description of the relationship

IfcRelAssignsTasks.Description::IfcLabel    

Define resources that may be associated with a task in a work order

       

Resources are allocated through the functional part fp_assign_construction_resource_to_task

       

For a construction equipment resource

fp_assign_construction_resource_to_task (IfcConstructionEquipmentResource)    

For a construction material resource

fp_assign_construction_resource_to_task (IfcConstructionMaterialResource)    

For a construction product resource

fp_assign_construction_resource_to_task (IfcConstructionProductResource)    

For a crew resource

fp_assign_construction_resource_to_task (IfcCrewResource)    

For a labor resource

fp_assign_construction_resource_to_task (IfcLaborResource)    

For a sub-contract resource

fp_assign_construction_resource_to_task (IfcSubContractResource)    

Identify the asset to which the work order will be assigned

       

Identify the asset to which the work order will be assigned

 

Identifying the asset through the functional part also allows for all of the elements that are grouped within the asset to be determined.

fp_model_asset    

Associate the asset with the work order

       

Specify the work order acting as the relating control.

IfcRelAssignsToProjectOrder.RelatingControl::IfcProjectOrder::PredefinedType = MAINTENANCEWORKORDER    

Specify the asset(s) that is assigned to the work plan.

IfcRelAssignsToProjectOrder.RelatedObjects:: IfcTask    

Set the particular type of the assignment relationship.

 

This value is used to describe the subtype of IfcObject to which the related objects belong. In the case of this functional part, occurrences of IfcAsset are subtypes of IfcGroup and consequently, the value of the attribute must be set to 'GROUP'

IfcRelAssignsToProjectOrder.RelatedObjectsType ::IfcObjectTypeEnum = 'GROUP'    

Assert the identity of the relationship

IfcRelAssignsToProjectOrder.GlobalId::IfcGloballyUniqueId    

Assert the owner history of the relationship

IfcRelAssignsToProjectOrder.OwnerHistory::fp_apply_owner_history    

Specify a name of the relationship

IfcRelAssignsToProjectOrder.Name::IfcLabel    

Specify a description of the relationship

IfcRelAssignsToProjectOrder.Description::IfcLabel    

Further relationship

       

Associate constraints with tasks or work orders

 

Constraints may be used to describe particular hazards or health and safety considerations that must be applied when performing the tasks within the work order.

fp_associate_constraint    

Associate costs with tasks and work orders

 

Costs may be assigned to the work order as expectations to undertaking. Actual costs incurred may be assigned additionally on completion and comparison between achieved and expected costs made.

fp_associate_cost    

IFC Entities Required

  • IfcControl
  • IfcElement
  • IfcGroup
  • IfcObject
  • IfcObjectDefinition
  • IfcProcess
  • IfcProduct
  • IfcRelationship
  • IfcRelAssigns
  • IfcRelAssignsTasks
  • IfcRelAssignsToControl
  • IfcRelAssignsToProcess
  • IfcRelAssignsToProjectOrder
  • IfcRelAssociates
  • IfcRelConnects
  • IfcRelSequences
  • IfcRoot
  • IfcScheduleTimeControl
  • IfcTask

IFC Datatypes Required

  • IfcGloballyUniqueId
  • IfcIdentifier
  • IfcLabel
  • IfcObjectTypeEnum
  • IfcPositiveRatioMeasure
  • IfcProjectOrderTypeEnum
  • IfcText
  • IfcTimeMeasure

IFC Functions Required

  • -

IFC Property Sets Required

  • Pset_ProjectOrderMaintenanceWorkOrder

IDM Functional Parts Required

  • fp_apply_owner_history
  • fp_assign_construction_resource_to_task
  • fp_associate_constraint
  • fp_associate_cost
  • fp_define_by_properties
  • fp_model_asset
  • fp_place_object
  • fp_represent_product
  • fp_select_actor
  • fp_select_date_time

EXPRESS Schema

SCHEMA FP_CONTROL_MAINTENANCE_WORK_ORDER;

TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;

TYPE IfcIdentifier = STRING;
END_TYPE;

TYPE IfcLabel = STRING;
END_TYPE;

TYPE IfcPositiveRatioMeasure = REAL;
WHERE
WR1 : SELF > 0;
END_TYPE;

TYPE IfcText = STRING;
END_TYPE;

TYPE IfcTimeMeasure = REAL;
END_TYPE;

TYPE IfcObjectTypeEnum = ENUMERATION OF
(PRODUCT,
PROCESS,
CONTROL,
RESOURCE,
ACTOR,
GROUP,
PROJECT,
NOTDEFINED);
END_TYPE;

TYPE IfcProjectOrderTypeEnum = ENUMERATION OF
(CHANGEORDER,
MAINTENANCEWORKORDER,
MOVEORDER,
PURCHASEORDER,
WORKORDER,
USERDEFINED,
NOTDEFINED);
END_TYPE;

ENTITY IfcProduct
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
Representation : OPTIONAL fp_represent_product;
ObjectPlacement : OPTIONAL fp_place_object;
WHERE
WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
OR (EXISTS(Representation) AND
(NOT('IFC2X2_FINAL.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
OR (NOT(EXISTS(Representation)));
END_ENTITY;

ENTITY IfcObject
ABSTRACT SUPERTYPE OF (ONEOF(IfcActor, IfcControl, IfcProcess, IfcProduct))
SUBTYPE OF(IfcObjectDefinition);
ObjectType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <\* IsDefinedBy \| 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;

ENTITY IfcRoot
ABSTRACT SUPERTYPE OF (ONEOF(IfcRelationship, IfcObjectDefinition));
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;

ENTITY IfcRelationship
ABSTRACT SUPERTYPE OF (ONEOF(IfcRelAssigns, IfcRelAssociates, IfcRelConnects))
SUBTYPE OF(IfcRoot);
END_ENTITY;

ENTITY IfcRelAssigns
ABSTRACT SUPERTYPE OF (ONEOF(IfcRelAssignsToControl, IfcRelAssignsToProcess))
SUBTYPE OF(IfcRelationship);
RelatedObjects : SET [1:?] OF IfcObject;
RelatedObjectsType : OPTIONAL IfcObjectTypeEnum;
WHERE
WR1 : IfcCorrectObjectAssignment(RelatedObjectsType, RelatedObjects);
END_ENTITY;

ENTITY IfcActor
SUBTYPE OF(IfcObject);
TheActor : fp_select_actor;
END_ENTITY;

ENTITY IfcRelAssignsToControl
SUPERTYPE OF (ONEOF(IfcRelAssignsTasks, IfcRelAssignsToProjectOrder))
SUBTYPE OF(IfcRelAssigns);
RelatingControl : IfcControl;
WHERE
WR1 : SIZEOF(QUERY(Temp <\* SELF\IfcRelAssigns.RelatedObjects \| RelatingControl :=: Temp)) = 0;
END_ENTITY;

ENTITY IfcRelAssignsTasks
SUBTYPE OF(IfcRelAssignsToControl);
TimeForTask : OPTIONAL IfcScheduleTimeControl;
WHERE
WR1 : HIINDEX(SELF\IfcRelAssigns.RelatedObjects) = 1;
WR2 : 'IFC2X2_FINAL.IFCTASK' IN TYPEOF(SELF\IfcRelAssigns.RelatedObjects[1]);
WR3 : 'IFC2X2_FINAL.IFCWORKCONTROL' IN TYPEOF(SELF\IfcRelAssignsToControl.RelatingControl);
END_ENTITY;

ENTITY IfcScheduleTimeControl
SUBTYPE OF(IfcControl);
ActualStart : OPTIONAL fp_select_date_time;
EarlyStart : OPTIONAL fp_select_date_time;
LateStart : OPTIONAL fp_select_date_time;
ScheduleStart : OPTIONAL fp_select_date_time;
ActualFinish : OPTIONAL fp_select_date_time;
EarlyFinish : OPTIONAL fp_select_date_time;
LateFinish : OPTIONAL fp_select_date_time;
ScheduledFinish : OPTIONAL fp_select_date_time;
ScheduleDuration : OPTIONAL IfcTimeMeasure;
ActualDuration : OPTIONAL IfcTimeMeasure;
RemainingTime : OPTIONAL IfcTimeMeasure;
FreeFloat : OPTIONAL IfcTimeMeasure;
TotalFloat : OPTIONAL IfcTimeMeasure;
IsCritical : OPTIONAL BOOLEAN;
StatusTime : OPTIONAL fp_select_date_time;
StartFloat : OPTIONAL IfcTimeMeasure;
FinishFloat : OPTIONAL IfcTimeMeasure;
Completion : OPTIONAL IfcPositiveRatioMeasure;
INVERSE
ScheduleTimeControlAssigned : IfcRelAssignsTasks FOR TimeForTask;
END_ENTITY;

ENTITY IfcControl
ABSTRACT SUPERTYPE OF (ONEOF(IfcProjectOrder, IfcScheduleTimeControl))
SUBTYPE OF(IfcObject);
INVERSE
Controls : SET OF IfcRelAssignsToControl FOR RelatingControl;
END_ENTITY;

ENTITY IfcProjectOrder
SUBTYPE OF(IfcControl);
Id : IfcIdentifier;
PredefinedType : IfcProjectOrderTypeEnum;
Status : OPTIONAL IfcLabel;
UNIQUE
UR2 : Id;
END_ENTITY;

ENTITY IfcRelAssignsToProjectOrder
SUBTYPE OF(IfcRelAssignsToControl);
END_ENTITY;

ENTITY IfcRelConnects
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRelationship);
END_ENTITY;

ENTITY IfcElement
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcProduct);
Tag : OPTIONAL IfcIdentifier;
END_ENTITY;

ENTITY IfcRelSequence
SUBTYPE OF(IfcRelConnects);
RelatingProcess : IfcProcess;
RelatedProcess : IfcProcess;
TtimeLag : IfcTimeMeasure;
WHERE
WR1 : RelatingProcess :<>: RelatedProcess;
END_ENTITY;

ENTITY IfcProcess
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
INVERSE
OperatesOn : SET OF IfcRelAssignsToProcess FOR RelatingProcess;
IsSuccessorFrom : SET OF IfcRelSequence FOR RelatedProcess;
IsPredecessorTo : SET OF IfcRelSequence FOR RelatingProcess;
END_ENTITY;

ENTITY IfcTask
SUBTYPE OF(IfcProcess);
TaskId : IfcIdentifier;
Status : OPTIONAL IfcLabel;
WorkMethod : OPTIONAL IfcLabel;
IsMilestone : BOOLEAN;
Priority : OPTIONAL INTEGER;
WHERE
WR1 : SIZEOF(QUERY(temp <\* SELF\IfcObject.Decomposes \| NOT('IFC2X2_FINAL.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR2 : SIZEOF(QUERY(temp <\* SELF\IfcObject.IsDecomposedBy \| NOT('IFC2X2_FINAL.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
WR3 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;

ENTITY IfcRelAssignsToProcess
SUBTYPE OF(IfcRelAssigns);
RelatingProcess : IfcProcess;
WHERE
WR1 : SIZEOF(QUERY(Temp <\* SELF\IfcRelAssigns.RelatedObjects \| RelatingProcess :=: Temp)) = 0;
END_ENTITY;

ENTITY IfcRelAssociates
SUBTYPE OF(IfcRelationship);
RelatedObjects : SET [1:?] OF IfcRoot;
WHERE
WR1 : SIZEOF(QUERY(temp <\* RelatedObjects \|
NOT(('IFC2X2_FINAL.IFCOBJECT' IN TYPEOF(temp))
OR ('IFC2X2_FINAL.IFCPROPERTYDEFINITION' IN TYPEOF(temp)))
)) = 0;
END_ENTITY;

ENTITY IfcRelAssociatesAppliedValue
SUBTYPE OF(IfcRelAssociates);
END_ENTITY;

ENTITY IfcObjectDefinition
SUBTYPE OF(IfcRoot);
INVERSE
HasAssignments : SET OF IfcRelAssigns FOR RelatedObjects;
HasAssociations : SET OF IfcRelAssociates FOR RelatedObjects;
END_ENTITY;

ENTITY fp_apply_owner_history;
END_ENTITY;

ENTITY fp_assign_construction_resource_to_task;
END_ENTITY;

ENTITY fp_associate_constraint;
END_ENTITY;

ENTITY fp_associate_cost;
END_ENTITY;

ENTITY fp_define_by_properties;
END_ENTITY;

ENTITY fp_model_asset;
END_ENTITY;

ENTITY fp_place_object;
END_ENTITY;

ENTITY fp_represent_product;
END_ENTITY;

ENTITY fp_select_actor;
END_ENTITY;

ENTITY fp_select_date_time;
END_ENTITY;

END_SCHEMA;

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.1.3 Build:#408 Jan 23, 2006) - Bug/feature request - Contact Administrators