Class Ifc2x3::IfcAppliedValueRelationship

Nested Relationships

This class is a nested type of Struct Ifc2x3.

Inheritance Relationships

Base Type

Class Documentation

class Ifc2x3::IfcAppliedValueRelationship : public IfcUtil::IfcBaseEntity

An IfcAppliedValueRelationship is a relationship class that enables cost values to be aggregated together as components of another cost value.

HISTORY New Entity in Release IFC2.0.

IFC2x4 CHANGE Subtyped from IfcResourceLevelRelationship, attribute order changed.

Use definitions Dependency relationships can exist between applied values on the basis that one particular value may be determined by operations on one or more other values. This is captured through the IfcAppliedValueRelationship entity. In this relationship, one instance of IfcAppliedValue acts as the principal (IfcAppliedValueRelationship.ComponentOf) whose value may be determined from the instances of IfcAppliedValue that are defined as its components (IfcAppliedValueRelationship.Components) An IfcAppliedValueRelationship has an ArithmeticOperator attribute that specifies the form of arithmetical operation implied by the relationship. A practical consideration when using the applied value relationship is that when the arithmetic operator is ADD, then the type of the IfcAppliedValue.AppliedValue attribute will be IfcMeasureWithUnit or IfcMonetaryMeasure while if the arithmetic operator is MULTIPLY, then the type of the IfcAppliedValue.AppliedValue attribute for one instance of IfcAppliedValue will be IfcMeasureWithUnit or IfcMonetaryMeasure while for other instances it will be IfcRatioMeasure. If the arithmetic operator is SUBTRACT or DIVIDE then there can only be two occurrences of IfcAppliedValue that can contribute and the order in which they occur is significant. The value of (A - B) will usually differ from the value of (B - A) whilst (X / Y) is the reciprocal of (Y / X).

Figure 239 illustrates one level aggregation of applied values. A relationship exists between applied value A and applied values B, C and D such that the value of A is determined by the addition of B, C and D such that: A = B + C + D

Figure 239 — Applied value relationship single level

Figure 240 illustrates two level aggregation of applied values. It is possible to develop more complex applied value specifications by creating hierarchies of applied value relationships. In the diagram, the development of a applied value is shown whereby, because B = E * F and D = G * H * J, then: A = ((E * F) + C + (G * H * J)).

Figure 240 — Applied value relationship multiple level

Public Functions

::Ifc2x3::IfcAppliedValue *ComponentOfTotal() const

The applied value (total or subtotal) of which the value being considered is a component.

void setComponentOfTotal(::Ifc2x3::IfcAppliedValue *v)
IfcTemplatedEntityList<::Ifc2x3::IfcAppliedValue>::ptr Components() const

Applied values that are components of another applied value and from which that applied value may be deduced.

void setComponents(IfcTemplatedEntityList<::Ifc2x3::IfcAppliedValue>::ptr v)
::Ifc2x3::IfcArithmeticOperatorEnum::Value ArithmeticOperator() const

The arithmetic operator applied in an applied value relationship.

void setArithmeticOperator(::Ifc2x3::IfcArithmeticOperatorEnum::Value v)
bool hasName() const

Whether the optional attribute Name is defined for this IfcAppliedValueRelationship.

std::string Name() const
void setName(std::string v)
bool hasDescription() const

Whether the optional attribute Description is defined for this IfcAppliedValueRelationship.

std::string Description() const
void setDescription(std::string v)
const IfcParse::entity &declaration() const
IfcAppliedValueRelationship(IfcEntityInstanceData *e)
IfcAppliedValueRelationship(::Ifc2x3::IfcAppliedValue *v1_ComponentOfTotal, IfcTemplatedEntityList<::Ifc2x3::IfcAppliedValue>::ptr v2_Components, ::Ifc2x3::IfcArithmeticOperatorEnum::Value v3_ArithmeticOperator, boost::optional<std::string> v4_Name, boost::optional<std::string> v5_Description)

Public Static Functions

const IfcParse::entity &Class()