Model Condition
Overview
Provides the information concerning the condition of an element or a group of elements
Condition may be established to determine if an element requires maintenance in order to bring it to a required level of operating efficiency. This may be brought about either by the absolute condition or by the rate of change of condition. Ultimately, the condition of an element may become so poor as to require replacement
The condition of an element may be established by:
- instrumentation in place that enables operating parameters to be continuously monitored; the parameters being selected such that they indicate the current condition of the asset (e.g. vibration).
- periodic inspection that may be either visual, carried out with the assistance of instruments or a combination.
The condition of an element is considered to be determined by one or several condition criteria. Each criterion is a particular measured or assessed value that contributes to the overall condition of the element.
- A criterion that is measured using calibrated instruments and whose value is repeatable by different instruments is considered to be objective. An objective criterion will typically be a measured value.
- A criterion that is assessed by observation and whose value may not be repeatable between assessors is considered to be subjective. A subjective criterion will typically be measured against an arbitrary scale (e.g. 1 represents new condition whilst 10 represents poor condition requiring urgent replacement).
The actual condition of an element is considered to be determined by bringing together the various criteria within a group.
Particular target values may be established for maintenance or replacement operations to be carried out on an element. Such values are defined as constraints. When the condition of an element reaches or exceeds a value indicated by a constraint, it signifies that a particular action should be triggered. A condition based 'event' may be based on either objective or subjective criteria. For objective criteria, the potential exists for live reporting of condition data from fixed instrumentation. Through the use of condition criteria, IFC can therefore offer the potential for 'expert' automated decision making in maintenance.
Suggested modifications to IFC model and documentation
* Date and time values are currently held for each condition criterion individually and not for condition. Therefore, for tracking condition history, each of the criterion dates within a condition must be the same so that they can also be applied to the condition. It would be better if a date and time could also be explicitly applied to the condition as well as to the condition criteria.
Results
Specification of relevant information concerning the asset and the elements and/or sub-assets from which it is composed.
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Establish Condition Criteria
The actual condition of an element may need to be determined by reference to several condition criteria. Each criterion may measure a different aspect of the condition and may be either a subjective or objective assessment. Each condition criterion should be established in turn. |
||||
|
||||
|
IfcConditionCriterion.GlobalId::IfcGloballyUniqueId | |||
|
IfcConditionCriterion.OwnerHistory::fp_apply_owner_history | |||
|
IfcConditionCriterion.Name::IfcLabel | |||
|
IfcConditionCriterion.Description::IfcText | |||
|
||||
|
IfcConditionCriterion.OwnerHistory::fp_select_date_time | |||
|
||||
|
IfcConditionCriterion.Criterion::IfcLabel | |||
|
IfcConditionCriterion.Criterion::fp_measure_with_unit | |||
| Assert the relationship that assigns the condition criteria that will establish the condition
This is defined in a separate functional part. The relating group in this functional part will be the entity IfcCondition. The related objects will be the instances of IfcConditionCriterion that establish the condition. Note the rule that requires the date and time value for each condition criterion within the group to have the same value. |
fp_assigns_to_group (condition) | |||
| Establish and identify the element whose condition is to be assessed | ||||
|
IfcProduct <subtypes>
OR IfcSystem <subtypes> OR IfcAsset |
|||
| Assert the relationship that assigns the condition to the product or group | ||||
| If the condition is being assigned to an element
The relating product is the product subtype selected and the related objects is the condition that is being assigned. |
fp_assigns_to_product | |||
| If the condition is being assigned to an asset or system
The relating group is the asset, system or subtype of system selected and the related objects is the condition that is being assigned. |
fp_assigns_to_group |
IFC Entities Required
- IfcAppliedValue
- IfcCalendarDate
- IfcCondition
- IfcConditionCriterion
- IfcControl
- IfcCostValue
- IfcGroup
- IfcObject
- IfcProduct
- IfcRoot
- IfcSystem
IFC Datatypes Required
- IfcAppliedValueSelect
- IfcConditionCriterionSelect
- IfcDayInMonthNumber
- IfcGloballyUniqueId
- IfcLabel
- IfcMonetaryMeasure
- IfcMonthInYearNumber
- IfcText
- IfcYearNumber
IFC Functions Required
- -
IFC Property Sets Required
- -
IDM Functional Parts Required
- fp_apply_owner_history
- fp_assigns_to_group
- fp_assigns_to_product
- fp_measure_with_unit
- fp_place_object
- fp_represent_product
- fp_select_actor
- fp_select_date_time
EXPRESS-G
EXPRESS Schema
SCHEMA FP_MODEL_CONDITION;
TYPE IfcDayInMonthNumber = INTEGER;
END_TYPE;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcMonthInYearNumber = INTEGER;
WHERE
WR1 : { 1<= SELF <= 12 };
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcYearNumber = INTEGER;
END_TYPE;
TYPE IfcConditionCriterionSelect = SELECT
(IfcLabel,
fp_measure_with_unit);
END_TYPE;
TYPE IfcMonetaryMeasure = REAL;
END_TYPE;
TYPE IfcAppliedValueSelect = SELECT
(IfcMonetaryMeasure,
fp_measure_with_unit);
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, IfcGroup, IfcProduct))
SUBTYPE OF(IfcRoot);
ObjectType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE OF (ONEOF(IfcObject, IfcRelationship));
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcControl
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
END_ENTITY;
ENTITY IfcConditionCriterion
SUBTYPE OF(IfcControl);
Criterion : IfcConditionCriterionSelect;
CriterionDateTime : fp_select_date_time;
WHERE
WR1 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcSystem
SUBTYPE OF(IfcGroup);
WHERE
WR1 : SIZEOF (QUERY (temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects | NOT('IFC2X2_FINAL.IFCELEMENT' IN TYPEOF(temp)))) = 0;
END_ENTITY;
ENTITY IfcGroup
SUPERTYPE OF (ONEOF(IfcCondition, IfcSystem, IfcAsset))
SUBTYPE OF(IfcObject);
END_ENTITY;
ENTITY IfcCondition
SUBTYPE OF(IfcGroup);
END_ENTITY;
ENTITY IfcCalendarDate;
DayComponent : IfcDayInMonthNumber;
MonthComponent : IfcMonthInYearNumber;
YearComponent : IfcYearNumber;
WHERE
WR21 : IfcValidCalendarDate (SELF);
END_ENTITY;
ENTITY IfcCostValue
SUBTYPE OF(IfcAppliedValue);
END_ENTITY;
ENTITY IfcAppliedValue
ABSTRACT SUPERTYPE;
AppliedValue : OPTIONAL IfcAppliedValueSelect;
UnitBasis : fp_measure_with_unit;
ApplicableDate : fp_select_date_time;
FixedUntilDate : fp_select_date_time;
WHERE
WR1 : EXISTS (AppliedValue) OR
EXISTS (ValueOfComponents);
END_ENTITY;
ENTITY IfcAsset
SUBTYPE OF(IfcGroup);
OriginalValue : IfcCostValue;
CurrentValue : IfcCostValue;
TotalReplacementCost : IfcCostValue;
Owner : fp_select_actor;
User : fp_select_actor;
IncorporationDate : IfcCalendarDate;
DepreciatedValue : IfcCostValue;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects | NOT('IFC2X2_FINAL.IFCELEMENT' IN TYPEOF(Temp)))) = 0;
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
ENTITY fp_assigns_to_group;
END_ENTITY;
ENTITY fp_assigns_to_product;
END_ENTITY;
ENTITY fp_measure_with_unit;
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;