Class Ifc4x1::IfcPropertyTableValue

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcPropertyTableValue : public Ifc4x1::IfcSimpleProperty

A property with a range value (IfcPropertyTableValue) defines a property object which has two lists of (numeric or descriptive) values assigned, the values specifying a table with two columns. The defining values provide the first column and establish the scope for the defined values (the second column). Interpolations are out of scope of the IfcPropertyTableValue. An optional Expression attribute may give the equation used for deriving the range value, which is for information purposes only.

The IfcPropertyTableValue defines a defining/defined property value combination for which the property name, the table with defining and defined values with measure type (and optional the units for defining and defined values) are given.

The units are handled by the DefiningUnit and DefinedUnit attributes:

If the DefiningUnit or DefinedUnit attribute is not given, then the unit is already implied by the type of IfcMeasureValue or IfcDerivedMeasureValue. The associated unit can be found at the IfcUnitAssignment globally defined at the project level (IfcProject.UnitsInContext).

If the DefiningUnit or DefinedUnit attribute is given, then the unit assigned by the unit attribute overrides the globally assigned unit.

The IfcPropertyTableValue allows for the specification of a table of defining/defined value pairs of the property description. The optional attribute CurveInterpolation allows to determine the interval between two given values.

Examples of a property with range value are:

Name

DefiningValues

DefiningValue Type (through IfcValue)

DefinedValues

DefinedValue Type (through IfcValue)

DefingUnit

DefinedUnit

SoundTransmissionLoss

100

IfcFrequencyMeasure

20

IfcNumericMeasure

  • dB

200

IfcFrequencyMeasure

42

IfcNumericMeasure

400

IfcFrequencyMeasure

46

IfcNumericMeasure

800

IfcFrequencyMeasure

56

IfcNumericMeasure

1600

IfcFrequencyMeasure

60

IfcNumericMeasure

3200

IfcFrequencyMeasure

65

IfcNumericMeasure

HISTORY: New entity in IFC2x.

IFC2x4 CHANGE Attributes DefiningValues and DefinedValues have been made OPTIONAL with upward compatibility for file based exchange. The attribute CurveInterpolation has been added..

Informal propositions:

The list of DefinedValues and the list of DefiningValues are corresponding lists.

Public Types

typedef IfcTemplatedEntityList<IfcPropertyTableValue> list

Public Functions

bool hasDefiningValues() const

Whether the optional attribute DefiningValues is defined for this IfcPropertyTableValue.

IfcEntityList::ptr DefiningValues() const

List of defining values, which determine the defined values. This list shall have unique values only.

IFC2x4 CHANGE The attribute has been made optional with upward compatibility for file based exchange.

void setDefiningValues(IfcEntityList::ptr v)
bool hasDefinedValues() const

Whether the optional attribute DefinedValues is defined for this IfcPropertyTableValue.

IfcEntityList::ptr DefinedValues() const

Defined values which are applicable for the scope as defined by the defining values.

IFC2x4 CHANGE The attribute has been made optional with upward compatibility for file based exchange.

void setDefinedValues(IfcEntityList::ptr v)
bool hasExpression() const

Whether the optional attribute Expression is defined for this IfcPropertyTableValue.

std::string Expression() const

Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.

void setExpression(std::string v)
bool hasDefiningUnit() const

Whether the optional attribute DefiningUnit is defined for this IfcPropertyTableValue.

::Ifc4x1::IfcUnit *DefiningUnit() const

Unit for the defining values, if not given, the default value for the measure type (given by the TYPE of the defining values) is used as defined by the global unit assignment at IfcProject.

void setDefiningUnit(::Ifc4x1::IfcUnit *v)
bool hasDefinedUnit() const

Whether the optional attribute DefinedUnit is defined for this IfcPropertyTableValue.

::Ifc4x1::IfcUnit *DefinedUnit() const

Unit for the defined values, if not given, the default value for the measure type (given by the TYPE of the defined values) is used as defined by the global unit assignment at IfcProject.

void setDefinedUnit(::Ifc4x1::IfcUnit *v)
bool hasCurveInterpolation() const

Whether the optional attribute CurveInterpolation is defined for this IfcPropertyTableValue.

::Ifc4x1::IfcCurveInterpolationEnum::Value CurveInterpolation() const

Interpolation of the curve between two defining and defined values that are provided. if not provided a linear interpolation is assumed.

IFC2x4 CHANGE The attribute has been added at the end of the attribute list.

void setCurveInterpolation(::Ifc4x1::IfcCurveInterpolationEnum::Value v)
const IfcParse::entity &declaration() const
IfcPropertyTableValue(IfcEntityInstanceData *e)
IfcPropertyTableValue(std::string v1_Name, boost::optional<std::string> v2_Description, boost::optional<IfcEntityList::ptr> v3_DefiningValues, boost::optional<IfcEntityList::ptr> v4_DefinedValues, boost::optional<std::string> v5_Expression, ::Ifc4x1::IfcUnit *v6_DefiningUnit, ::Ifc4x1::IfcUnit *v7_DefinedUnit, boost::optional<::Ifc4x1::IfcCurveInterpolationEnum::Value> v8_CurveInterpolation)

Public Static Functions

const IfcParse::entity &Class()