Define Quantity
Overview
Provides the means by which a quantity that is defined by a method of measurement may be defined for an object.
'Methods of measurement' are frequently used as the basis on which elements may be measured for inclusion in cost or progress submissions. They may include sets of rules that determine how the measurement should be established and the units of measure in which it should be expressed. The rules may be developed from some abstract concepts of measurement rather than actual values (such as length, area etc.) that might otherwise be physically associated with an object or that might be derived through knowledge of the geometric representation of an object.
For example, consider a straight section of pipework with a 90? bend at one end and a square tee at the other end.
The actual length of the pipe section (as cut and fitted) is measured as the distance between each physical end. In geometric terms, it is normally measured as shown; that is the length of piping between the end of the bend to which it is connected and the end of the tee to which it is connected. The actual fitting elements can also be determined as being a tee and a bend.
A method of measurement might however set a rule that the length should be measured as the distance between the ends of the section of pipe if they were projected to a point at which they would meet with an adjacent section of pipe. This would mean that the measured length would be greater than the actual length but would be considered satisfactory under the rules of the method of measurement for costing.
A further rule might be that instead of determining the type of each fitting, all fittings would be treated as being the same (called a 'counted fitting' in this example).
The information presented in this functional part includes:
- Method of measurement to be used for quantity definition
- Name and (if required) description of the quantity to be measured
- Named physical quantities with values and units appropriately set
- Additional discriminator, quality and usage attributes for complex quantities comprising sets of values
- Specification of objects for which the quantities are defined.
Results
Specification of quantities for objects according to a defined method of measurement.
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Define the physical quantity to be used | ||||
|
||||
|
IfcQuantityCount.CountValue::IfcCountMeasure | |||
|
IfcQuantityLength.LengthValue::IfcLengthMeasure | |||
|
IfcQuantityArea.AreaValue::IfcAreaMeasure | |||
|
IfcQuantityVolume.VolumeValue::IfcVolumeMeasure | |||
|
IfcQuantityWeight.WeightValue::IfcWeightMeasure | |||
|
IfcQuantityTime.TimeValue::IfcTimeMeasure | |||
|
||||
|
IfcPhysicalComplexQuantity.HasQuantities::IfcPhysicalSimpleQuantity | |||
|
IfcPhysicalComplexQuantity.Discrimination::IfcLabel | |||
|
IfcPhysicalComplexQuantity.Quality::IfcLabel | |||
|
IfcPhysicalComplexQuantity.Usage::IfcLabel | |||
|
IfcQuantityXXX.Name::IfcLabel OR IfcPhysicalComplexQuantity.Name::IfcLabel |
|||
|
IfcQuantityXXX.Description::IfcLabel OR IfcPhysicalComplexQuantity. Description::IfcLabel |
|||
|
IfcQuantityXXX.Unit::fp_unit OR IfcPhysicalComplexQuantity. Unit::fp_unit |
|||
| Identify the method of measurement to be used | ||||
|
IfcElementQuantity.MethodOfMeasurement::IfcLabel | |||
| Identify the quantities to be measured | ||||
|
IfcElementQuantity.Name::IfcLabel | |||
|
IfcElementQuantity.Description::IfcLabel | |||
| Assign the quantity | ||||
|
IfcElementQuantity.Quantities::IfcPhysicalQuantity | |||
| Define the quantity for the object | ||||
|
fp_define_by_properties |
IFC Entities Required
- IfcElementQuantity
- IfcPhysicalQuantity
- IfcPhysicalComplexQuantity
- IfcPhysicalSimpleQuantity
- IfcPropertyDefinition
- IfcPropertySetDefinition
- IfcQuantityArea
- IfcQuantityCount
- IfcQuantityLength
- IfcQuantityTime
- IfcQuantityVolume
- IfcQuantityWeight
- IfcRoot
IFC Datatypes Required
- IfcAreaMeasure
- IfcCountMeasure
- IfcGloballyUniqueId
- IfcLabel
- IfcLengthMeasure
- IfcMassMeasure
- IfcText
- IfcTimeMeasure
- IfcVolumeMeasure
IFC Functions Required
- -
IFC Property Sets Required
- -
IDM Functional Parts Required
- fp_apply_owner_history
- fp_define_by_properties
- fp_unit
EXPRESS-G
EXPRESS Schema
SCHEMA FP_DEFINE_QUANTITY;
TYPE IfcAreaMeasure = REAL;
END_TYPE;
TYPE IfcCountMeasure = NUMBER;
END_TYPE;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcLengthMeasure = REAL;
END_TYPE;
TYPE IfcMassMeasure = REAL;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcTimeMeasure = REAL;
END_TYPE;
TYPE IfcVolumeMeasure = REAL;
END_TYPE;
ENTITY IfcRoot
ABSTRACT SUPERTYPE;
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcPropertyDefinition
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRoot);
END_ENTITY;
ENTITY IfcPropertySetDefinition
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcPropertyDefinition);
END_ENTITY;
ENTITY IfcElementQuantity
SUBTYPE OF(IfcPropertySetDefinition);
MethodOfMeasurement : OPTIONAL IfcLabel;
Quantities : SET [1:?] OF IfcPhysicalQuantity;
END_ENTITY;
ENTITY IfcPhysicalQuantity
ABSTRACT SUPERTYPE OF (ONEOF(IfcPhysicalComplexQuantity, IfcPhysicalSimpleQuantity));
Name : IfcLabel;
Description : OPTIONAL IfcText;
INVERSE
PartOfComplex : SET [0:1] OF IfcPhysicalComplexQuantity FOR HasQuantities;
END_ENTITY;
ENTITY IfcPhysicalComplexQuantity
SUBTYPE OF(IfcPhysicalQuantity);
HasQuantities : SET [1:?] OF IfcPhysicalQuantity;
Discrimination : IfcLabel;
Quality : OPTIONAL IfcLabel;
Usage : OPTIONAL IfcLabel;
WHERE
WR21 : SIZEOF(QUERY(temp <* HasQuantities | SELF :=: temp)) = 0;
END_ENTITY;
ENTITY IfcPhysicalSimpleQuantity
ABSTRACT SUPERTYPE OF (ONEOF(IfcQuantityArea, IfcQuantityCount, IfcQuantityLength, IfcQuantityTime, IfcQuantityVolume, IfcQuantityWeight))
SUBTYPE OF(IfcPhysicalQuantity);
Unit : OPTIONAL fp_unit;
END_ENTITY;
ENTITY IfcQuantityArea
SUBTYPE OF(IfcPhysicalSimpleQuantity);
AreaValue : IfcAreaMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.AREAUNIT);
WR22 : AreaValue >= 0;
END_ENTITY;
ENTITY IfcQuantityCount
SUBTYPE OF(IfcPhysicalSimpleQuantity);
CountValue : IfcCountMeasure;
WHERE
WR1 : CountValue >= 0;
END_ENTITY;
ENTITY IfcQuantityLength
SUBTYPE OF(IfcPhysicalSimpleQuantity);
LengthValue : IfcLengthMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.LENGTHUNIT);
WR22 : LengthValue >= 0;
END_ENTITY;
ENTITY IfcQuantityTime
SUBTYPE OF(IfcPhysicalSimpleQuantity);
TimeValue : IfcTimeMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.TIMEUNIT);
WR22 : TimeValue >= 0;
END_ENTITY;
ENTITY IfcQuantityVolume
SUBTYPE OF(IfcPhysicalSimpleQuantity);
VolumeValue : IfcVolumeMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.VOLUMEUNIT);
WR22 : VolumeValue >= 0;
END_ENTITY;
ENTITY IfcQuantityWeight
SUBTYPE OF(IfcPhysicalSimpleQuantity);
WeightValue : IfcMassMeasure;
WHERE
WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
(SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.MASSUNIT);
WR22 : WeightValue >= 0;
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
ENTITY fp_define_by_properties;
END_ENTITY;
ENTITY fp_unit;
END_ENTITY;
END_SCHEMA;
Examples of Quantities
Example 1: Setting the length of electrical cables
In the example, cables and cores are geometrical represented as a simple line in the drawing. These are intended to signify connections between components and do not necessarily represent actual routes that cables/cores would actually take.
Each electrical connection occurrence is here modelled as an IfcFlowSegment that is defined by type as a cable segment. In the example, particular properties of the segment are not elaborated. The occurrences here reference the cable route 1>2>3 in the diagram.
Measurement of the flow segment may be undertaken in various ways. For this example, two measurement are shown.
- Measurement A is taken in the direct line 1 - 2 - 3 with allowance made for drop at each point.
- Measurement B is taken from point 1, rising up and then travelling orthogonally across the space to the mid point and then to the light where it drops to 2. This is repeated to connect to 3.
For the purposes of the example, method of measurement A is shown as MoM-A with a length value of 5m for each part (i.e. two flow segments sharing the same quantity measurement).
#100 = IFCOWNERHISTORY ( ... );
#200 = IFCORGANIZATION ($,'IAI',$,$,$);
#300 = IFCSIUNIT (.LENGTHUNIT.,$,.METRE.,#301);
#301 = IFCDIMENSIONALEXPONENTS (1,0,0,0,0,0,0);
#500 = IFCFLOWSEGMENT ('gabcdeghijklmnopqrst500',#100,'Cable Segment',$,$,$,$,$);
#501 = IFCFLOWSEGMENT ('gabcdeghijklmnopqrst501',#100,'Cable Segment',$,$,$,$,$);
#600 = IFCELEMENTQUANTITY ('gabcdeghijklmnopqrst600',#100,$,$,'MoM-A',(#601));
#601 = IFCQUANTITYLENGTH ('Cable length','Most direct route',#300,5.0);
#700 = IFCRELDEFINESBYPROPERTIES ('gabcdeghijklmnopqrst700',#100,$,$,(#500,#501),#600);
Method of measurement B is shown as MoM-B with a length value of 6.4m for the first segment and 6.7m for the second segment.
#100 = IFCOWNERHISTORY ( ... );
#200 = IFCORGANIZATION ($,'IAI',$,$,$);
#300 = IFCSIUNIT (.LENGTHUNIT.,$,.METRE.,#301);
#301 = IFCDIMENSIONALEXPONENTS (1,0,0,0,0,0,0);
#500 = IFCFLOWSEGMENT ('gabcdeghijklmnopqrst500',#100,'Cable Segment',$,$,$,$,$);
#501 = IFCFLOWSEGMENT ('gabcdeghijklmnopqrst501',#100,'Cable Segment',$,$,$,$,$);
#600 = IFCELEMENTQUANTITY ('gabcdeghijklmnopqrst600',#100,$,$,'MoM-A',(#601));
#601 = IFCQUANTITYLENGTH ('Cable length','Most direct route',#300,6.4);
#610 = IFCELEMENTQUANTITY ('gabcdeghijklmnopqrst610',#100,$,$,'MoM-A',(#611));
#611 = IFCQUANTITYLENGTH ('Cable length','Most direct route',#300,6.7);
#700 = IFCRELDEFINESBYPROPERTIES ('gabcdeghijklmnopqrst700',#100,$,$,(#500),#600);
#701 = IFCRELDEFINESBYPROPERTIES ('gabcdeghijklmnopqrst701',#100,$,$,(#501),#610);