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


Control Maintenance Plan

Overview

A maintenance plan is a type of work plan in which the work tasks that are planned are specifically related the assets that are to be maintained. That is, the maintenance plan will provide a listing of all the maintenance tasks that must be undertaken and the period that can elapse between successive performances of the same task. A maintenance plan does not identify the actual dates on which work should be undertaken. This is the function of a maintenance schedule which is described in fp_control_maintenance_schedule.
Additionally, a maintenance plan may define required resources to perform tasks in terms of the skills or capabilities required. It is not expected that a maintenance plan will identify actors by name.
For instance, the shaft bearings of a pump impeller may require lubrication once each year with the work being undertaken by a Class 1 Lubrication Specialist. This is a work description that can form the basis of a maintenance plan.
For a maintenance plan, the following information will be needed:
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 taks (i.e. how it will be shown in a chart)

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
For each task on a particular asset, the period of time between occasions when the work is carried out.

Suggested modifications to IFC model and documentation
? IfcTimeMeasure is specified as a real value that is normally measured in seconds. Many time measures may be measured in much larger units (months/years for a typical building or building component). This fact has to be either dealt with in software (currently as indicated) or an alternative approach to measuring time measure determined for IFC.
? To deal with periods between tasks in a work plan, a property set (Pset_WorkPlanPeriod) is introduced. Tis should be considered to act as a placeholder for a more serious reconsideration of the time series capability. The property set has two properties. The first is a time measure property which measures the basic unit (day, week, month, year). The second value is an integer value that specifies how many units of time measure are to pass between planned tasks being done. Thus, for work planned to be done on a quarterly basis, the PlanUnitTimeMeasure would be 'MONTH' and the PlanTaskPeriod would be 3

Results

Maintenance plan is established in which all maintenance tasks are defined for assets that are to be maintained and the period at which they should be undertaken is indicated.

Information Needed Entity/Pset/Functional Part MAN REC OPT
CONCEPT: Establish a maintenance plan defining the maintenance work to be undertaken on a selection of assets.
 
Note that whilst it would be possible to look at the maintenance of products, it is assumed that such products are grouped together within an asset for the purposes of maintenance. Individual elements of the asset are identifiable within the asset group through the general grouping mechanism.
       
Determine the maintenance tasks to be undertaken. Perform the following actions for each task to be included in the maintenance plan.        

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; it is the text entry in a plan or schedule.

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 maintenance plan
 
Note that certain attributes of a task are relevant only to use of a task within a schedule and therefore should not be used for a maintenance plan
       

Set the value of the Task identifier.
Note that this is a reference value given to the task in the context of the maintenance plan. It must be locally unique (within the maintenance plan), 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 maintenance plan. 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
 

This is not relevant for a maintenance plan and therefore MUST not be asserted

IfcTask.Status ::IfcLabel X X X

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

This is not relevant for a maintenance plan and therefore MUST not be asserted

IfcTask.WorkMethod ::IfcLabel X X X

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

This is not relevant for a maintenance plan and therefore MUST not be asserted

IfcTask.Priority::INTEGER X X X
A task may nest other tasks, only the parent task being related to the asset. For each sub-task, the procedure for assertion of attributes as defined above must be followed. 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 developing a maintenance plan

fp_nests (IfcTask)    
Define the period between planned work actions        

Set the unit time measure to be applied to the task
 

Note that this value must be asserted for the specification of a maintenance plan.

Pset_WorkPlanPeriod.PlanUnitTimeMeasure::IfcPropertyEnumeratedValue::IfcLabel    

Set the number of units of the time measure that specifies the period between recurring occurrences of the task
 
Note also that this value must be asserted to qualify the meaning of the time measure above.

Pset_WorkPlanPeriod.PlanTaskPeriod::IfcPropertySingleValue::IfcInteger    
Define the property set for the task        

Define each occurrence of task to which the work plan period is to apply

fp_define_by_properties    
Define resources that may be associated with a task in a work plan        

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        

Identify the asset to which the task 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 task
 
_In this functional part, the asset is assigned to the task rather than vice versa. This is done because the asset is a group rather than a product.
 
Note also that the identification of the asset is not specifically referenced by the work control. Reference to the asset is considered to be implicit through the task_
       

Specify the relating task

IfcRelAssignsToProcess.RelatingProcess::IfcTask    

Specify the related objects

 

_Note here that specific reference is made to IfcAsset although access to the IfcAsset specification is through the fp_model_asset functional part.

 

A given task may be relevant for multiple assets. This can be managed through the fact that the IfcRelAssignsToProcess allows for multiple related objects._

IfcRelAssignsToProcess.RelatedObjects::IfcAsset    

Set the quantity of the object specific for the operation by this process.

 

This attribute is not relevant to the assigning of tasks to the work plan and should not be asserted for this purpose.

IfcRelAssignsToProcess.QuantityInProcess::IfcMeasureWithUnit X X X

Assert the identity of the relationship

IfcRelAssignsToProcess.GlobalId::IfcGloballyUniqueId    

Assert the owner history of the relationship

IfcRelAssignsToProcess.OwnerHistory::fp_apply_owner_history    

Specify a name of the relationship

IfcRelAssignsToProcess.Name::IfcLabel    

Specify a description of the relationship

IfcRelAssignsToProcess.Description::IfcLabel    
Define the work plan to which the tasks will be assigned        

Assert the identity of the work plan

IfcWorkPlan.GlobalId::IfcGloballyUniqueId    

Assert the owner history of the work plan

IfcWorkPlan.OwnerHistory::fp_apply_owner_history    

Specify a name of the work plan

IfcWorkPlan.Name::IfcLabel    

Specify a description of the work plan

IfcWorkPlan.Description::IfcLabel    

Set identifier of the work plan

IfcWorkPlan.Identifier::IfcIdentifier    

Set the date that the plan is created

IfcWorkPlan.CreationDate::fp_select_date_time    

Set the authors of the work plan

IfcWorkPlan.Creators::fp_select_actor    

Provide a description of the purpose of the work plan.

 

Note that this is a description of purpose and may differ from the text description given above under the general attributes for the entity.

IfcWorkPlan.Purpose::IfcLabel    

Set the total duration of the entire work schedule.

 

This is not relevant for a maintenance plan and therefore MUST not be asserted

IfcWorkPlan.Duration::IfcTimeMeasure X X X

Set the total time float of the entire work schedule.

 
This is not relevant for a maintenance plan and therefore MUST not be asserted

IfcWorkPlan.TotalFloat::IfcTimeMeasure X X X

Set the start time of the schedule.

 
This is not relevant for a maintenance plan and therefore MUST not be asserted

IfcWorkPlan.StartTime::fp_select_date_time X X X

Set the finish time of the schedule.

 
This is not relevant for a maintenance plan and therefore MUST not be asserted

IfcWorkPlan.FinishTime::fp_select_date_time X X X

Select the work control type from the list of predefined types

IfcWorkPlan.WorkControlType
::IfcWorkControlTypeEnum
   

If the value of the work control type set above is USERDEFINED then set a user defined work control type.

 
This attribute must be asserted when the control type is set to USERDEFINED. For any other value of work control type, the attribute must not be asserted.

IfcWorkPlan.UserDefinedControlType::IfcLabel    
Assign the task to the work plan        

Specify the work plan acting as the relating control.

 
_This is the work plan for which the attribute values have been set above._IfcRelAssignsTasks.RelatingControl::IfcWorkPlan

   

Specify the tasks that are assigned to the work plan.

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'    

Set the time related information for the work control.

 

_Note that for a work plan, specific time and date related information concerning the starting and ending of activities is not required. Therefore, this attribute must not be asserted for a work plan.

 

As a result, although IfcScheduleTimeControl is shown within the model for this functional part, it is not asserted._

IfcRelAssignsTasks.TimeForTask::IfcScheduleTimeControl X X X

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    

IFC Entities Required

  • IfcControl
  • IfcGroup
  • IfcObject
  • IfcObjectDefinition
  • IfcProcess
  • IfcProduct
  • IfcRelationship
  • IfcRelAssigns
  • IfcRelAssignsTasks
  • IfcRelAssignsToControl
  • IfcRelAssignsToProcess
  • IfcRoot
  • IfcScheduleTimeControl
  • IfcTask
  • IfcWorkControl
  • IfcWorkPlan

IFC Datatypes Required

  • IfcGloballyUniqueId
  • IfcIdentifier
  • IfcLabel
  • IfcObjectTypeEnum
  • IfcPositiveRatioMeasure
  • IfcRatioMeasure
  • IfcText
  • IfcTimeMeasure
  • IfcWorkControlTypeEnum

IFC Functions Required

  • -

IFC Property Sets Required

  • Pset_WorkPlanPeriod

IDM Functional Parts Required

  • fp_apply_owner_history;
  • fp_assign_construction_resource_to_task
  • fp_define_by_properties;
  • fp_measure_with_unit;
  • fp_model_asset
  • fp_nests
  • fp_place_object;
  • fp_represent_product;
  • fp_select_date_time;

EXPRESS Schema

SCHEMA FP_CONTROL_MAINTENANCE_PLAN;

TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;

TYPE IfcIdentifier = STRING;
END_TYPE;

TYPE IfcLabel = STRING;
END_TYPE;

TYPE IfcRatioMeasure = REAL;
END_TYPE;

TYPE IfcPositiveRatioMeasure = IfcRatioMeasure;
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 IfcWorkControlTypeEnum = ENUMERATION OF
(ACTUAL,
BASELINE,
PLANNED,
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(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 IfcObjectDefinition
SUBTYPE OF(IfcRoot);
INVERSE
HasAssignments : SET OF IfcRelAssigns FOR RelatedObjects;
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
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 IfcRelAssignsToControl
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(IfcScheduleTimeControl, IfcWorkControl))
SUBTYPE OF(IfcObject);
INVERSE
Controls : SET OF IfcRelAssignsToControl FOR RelatingControl;
END_ENTITY;

ENTITY IfcWorkControl
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcControl);
Identifier : IfcIdentifier;
CreationDate : fp_select_date_time;
Purpose : OPTIONAL IfcLabel;
Duration : OPTIONAL IfcTimeMeasure;
TotalFloat : OPTIONAL IfcTimeMeasure;
StartTime : fp_select_date_time;
FinishTime\_ : fp_select_date_time;
WorkControlType : OPTIONAL IfcWorkControlTypeEnum;
UserDefinedControlType : OPTIONAL IfcLabel;
WHERE
WR1 : (WorkControlType <> IfcWorkControlTypeEnum.USERDEFINED) OR
((WorkControlType = IfcWorkControlTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcWorkControl.UserDefinedControlType));
END_ENTITY;

ENTITY IfcWorkPlan
SUBTYPE OF(IfcWorkControl);
END_ENTITY;

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

ENTITY IfcProcess
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
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 fp_apply_owner_history;
END_ENTITY;

ENTITY fp_assign_construction_resource_to_task;
END_ENTITY;

ENTITY fp_define_by_properties;
END_ENTITY;

ENTITY fp_measure_with_unit;
END_ENTITY;

ENTITY fp_model_asset;
END_ENTITY;

ENTITY fp_nests;
END_ENTITY;

ENTITY fp_place_object;
END_ENTITY;

ENTITY fp_represent_product;
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