Class Ifc4x1::IfcSimplePropertyTemplate

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcSimplePropertyTemplate : public Ifc4x1::IfcPropertyTemplate

The IfcSimplePropertyTemplate defines the template for all dynamically extensible properties, either the subtypes of IfcSimpleProperty, or the subtypes of IfcPhysicalSimpleQuantity. The individual property templates are interpreted according to their Name attribute and may have a predefined template type, property units, and property data types. The correct interpretation of the attributes:

PrimaryUnit SecondaryUnit PrimaryDataType SecondaryDataType

is determined by the TemplateType. The TemplateType also controls, which subtype of either IfcSimpleProperty or IfcPhysicalSimpleQuantity shall be used for property occurrences corresponding to this template.

HISTORY New entity in IFC2x4.

Relationship use definition The IfcSimplePropertyTemplate is part of the set of templates included in the IfcPropertySetTemplate. The template can be accessed throught the inverse attribute PartOfPsetTemplate The IfcPropertySetTemplate may define one or several instances of IfcPropertySet (or IfcElementQuantity). The definition assignment is established by the objectified relationship IfcRelDefinesByTemplate. There is no direct link between an IfcSimplePropertyTemplate and a subtype of either IfcSimpleProperty or IfcPhysicalSimpleQuantity. The definition relationship between the template and the individual properties (or quantities) is established by the Name attributes.

Constraints at IfcPropertySetTemplate and IfcPropertySet (and IfcElementQuantity) guarantee that the Name attributes of included property templates and individual properties are unique.

Figure 9 — Property template relationships

Public Functions

bool hasTemplateType() const

Whether the optional attribute TemplateType is defined for this IfcSimplePropertyTemplate.

::Ifc4x1::IfcSimplePropertyTemplateTypeEnum::Value TemplateType() const

Property type defining whether the property template defines a property with a single value, a bounded value, a list value, a table value, an enumerated value, or a reference value. Or the quantity type defining whether the template defines a quantity with a length, area, volume, weight or time value.

NOTE the value of this property determines the correct use of the PrimaryUnit, SecondaryUnit, PrimaryDataType, SecondaryDataType, and Expression attributes.

void setTemplateType(::Ifc4x1::IfcSimplePropertyTemplateTypeEnum::Value v)
bool hasPrimaryMeasureType() const

Whether the optional attribute PrimaryMeasureType is defined for this IfcSimplePropertyTemplate.

std::string PrimaryMeasureType() const
void setPrimaryMeasureType(std::string v)
bool hasSecondaryMeasureType() const

Whether the optional attribute SecondaryMeasureType is defined for this IfcSimplePropertyTemplate.

std::string SecondaryMeasureType() const
void setSecondaryMeasureType(std::string v)
bool hasEnumerators() const

Whether the optional attribute Enumerators is defined for this IfcSimplePropertyTemplate.

::Ifc4x1::IfcPropertyEnumeration *Enumerators() const
void setEnumerators(::Ifc4x1::IfcPropertyEnumeration *v)
bool hasPrimaryUnit() const

Whether the optional attribute PrimaryUnit is defined for this IfcSimplePropertyTemplate.

::Ifc4x1::IfcUnit *PrimaryUnit() const

Primary unit assigned to the definition of the property. It should be provided, if the PropertyType is set to:

P_SINGLEVALUE: determining the IfcPropertySingleValue.Unit P_ENUMERATEDVALUE: determining the IfcPropertyEnumeration.Unit P_BOUNDEDVALUE: determining the IfcPropertyBoundedValue.Unit P_LISTVALUE: determining the IfcPropertyListValue.Unit P_TABLEVALUE: determining the IfcPropertyTableValue.DefiningUnit

void setPrimaryUnit(::Ifc4x1::IfcUnit *v)
bool hasSecondaryUnit() const

Whether the optional attribute SecondaryUnit is defined for this IfcSimplePropertyTemplate.

::Ifc4x1::IfcUnit *SecondaryUnit() const

Secondary unit assigned to the definition of the property. It should be provided, if the PropertyType is set to:

P_TABLEVALUE: determining the IfcPropertyTableValue.DefinedUnit

void setSecondaryUnit(::Ifc4x1::IfcUnit *v)
bool hasExpression() const

Whether the optional attribute Expression is defined for this IfcSimplePropertyTemplate.

std::string Expression() const

The expression used to store additional information for the property template depending on the PropertyType. It should the following definitions, if the PropertyType is set to:

P_TABLEVALUE: the expression that could be evaluated to define the correlation between the defining values and the defined values. Q_LENGTH, Q_AREA, Q_VOLUME, Q_COUNT, Q_WEIGTH, Q_TIME: the formula to be used to calculate the quantity

NOTE No value shall be asserted if the PropertyType is not listed above.

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

Whether the optional attribute AccessState is defined for this IfcSimplePropertyTemplate.

::Ifc4x1::IfcStateEnum::Value AccessState() const

Information about the access state of the property. It determines whether a property be viewed and/or modified by any receiving application without specific knowledge of it. Attribute use definition for IfcStateEnum

READWRITE: Properties of this template are readable and writable. They may be viewed and modified by users of any application. These are typical informational properties set by a user.

READONLY: Properties of this template are read-only. They may be viewed but not modified by users of any application. (Applications may generate such values). These are typical automatically generated properties that should be displayed only, but not written back.

LOCKED: Properties of this template are locked. They may only be accessed by the owning application (the publisher of the property set template). These are typically application depended, internal properties that should not be published.

READWRITELOCKED: Properties of this template are locked, readable, and writable. They may only be accessed by the owning application.

READONLYLOCKED: Properties of this template are locked and read-only. They may only be accessed by the owning application.

void setAccessState(::Ifc4x1::IfcStateEnum::Value v)
const IfcParse::entity &declaration() const
IfcSimplePropertyTemplate(IfcEntityInstanceData *e)
IfcSimplePropertyTemplate(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<::Ifc4x1::IfcSimplePropertyTemplateTypeEnum::Value> v5_TemplateType, boost::optional<std::string> v6_PrimaryMeasureType, boost::optional<std::string> v7_SecondaryMeasureType, ::Ifc4x1::IfcPropertyEnumeration *v8_Enumerators, ::Ifc4x1::IfcUnit *v9_PrimaryUnit, ::Ifc4x1::IfcUnit *v10_SecondaryUnit, boost::optional<std::string> v11_Expression, boost::optional<::Ifc4x1::IfcStateEnum::Value> v12_AccessState)

Public Static Functions

const IfcParse::entity &Class()