Class Ifc4x1::IfcMetric

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcMetric : public Ifc4x1::IfcConstraint

An IfcMetric is used to capture quantitative resultant metrics that can be applied to objectives.

HISTORY: New Entity in IFC Release 2.0

Use Definition IfcMetric is a subtype of IfcConstraint and may be associated with any subtype of IfcRoot through the IfcRelAssociatesConstraint relationship in the IfcControlExtension schema, or may be associated with IfcProperty by IfcPropertyConstraintRelationship.

The aim of IfcMetric is to capture the quantitative aspects of a constraint.

For instance, when undertaking a move (instantiated through the IfcTask class), a constraint is instantiated as the class IfcMetric and may be named as a ‘Move Start Constraint’ or ‘Move End Constraint’ and described using one of a possible range of move constraints as shown in the table below.

Constraint Description Benchmark Grade

ASSOONASPOSSIBLE Action should commence at the earliest possible opportunity. GREATERTHANOREQUALTO SOFT

MUSTSTARTON Action must start at a prescribed date/time. EQUALTO HARD

MUSTSTARTBEFORE Action must start before a prescribed date/time. LESSTHANOREQUALTO HARD

MUSTSTARTAFTER Action must not start before a prescribed date/time. GREATERTHANOREQUALTO HARD

MAYSTARTAFTER Action may start at any time following a prescribed date/time. GREATERTHANOREQUALTO SOFT

MUSTFINISHON Action must be complete at or by a prescribed date/time. EQUALTO HARD

MUSTFINISHBEFORE Action must be complete before a prescribed date/time. LESSTHANOREQUALTO HARD

This constraint (instantiated as IfcMetric) uses a Date/Time value in IfcMetric.DataValue through IfcMetricValueSelect. An appropriate benchmark is applied according to the requirement of the constraint (as indicated) by IfcMetric.Benchmark. The grade of the constraint (hard, soft, advisory) must be specified through IfcConstraint.ConstraintGrade whilst the time at which the constraint is created may be optionally asserted through IfcConstraint.CreationTime.

Public Types

typedef IfcTemplatedEntityList<IfcMetric> list

Public Functions

::Ifc4x1::IfcBenchmarkEnum::Value Benchmark() const

Enumeration that identifies the type of benchmark data.

void setBenchmark(::Ifc4x1::IfcBenchmarkEnum::Value v)
bool hasValueSource() const

Whether the optional attribute ValueSource is defined for this IfcMetric.

std::string ValueSource() const

Reference source for data values.

void setValueSource(std::string v)
bool hasDataValue() const

Whether the optional attribute DataValue is defined for this IfcMetric.

::Ifc4x1::IfcMetricValueSelect *DataValue() const

The value with data type defined by the underlying type accesses via IfcMetricValueSelect.

void setDataValue(::Ifc4x1::IfcMetricValueSelect *v)
bool hasReferencePath() const

Whether the optional attribute ReferencePath is defined for this IfcMetric.

::Ifc4x1::IfcReference *ReferencePath() const
void setReferencePath(::Ifc4x1::IfcReference *v)
const IfcParse::entity &declaration() const
IfcMetric(IfcEntityInstanceData *e)
IfcMetric(std::string v1_Name, boost::optional<std::string> v2_Description, ::Ifc4x1::IfcConstraintEnum::Value v3_ConstraintGrade, boost::optional<std::string> v4_ConstraintSource, ::Ifc4x1::IfcActorSelect *v5_CreatingActor, boost::optional<std::string> v6_CreationTime, boost::optional<std::string> v7_UserDefinedGrade, ::Ifc4x1::IfcBenchmarkEnum::Value v8_Benchmark, boost::optional<std::string> v9_ValueSource, ::Ifc4x1::IfcMetricValueSelect *v10_DataValue, ::Ifc4x1::IfcReference *v11_ReferencePath)

Public Static Functions

const IfcParse::entity &Class()