Struct Ifc4

Nested Relationships

Nested Types

Struct Documentation

struct Ifc4

Public Types

typedef IfcUtil::IfcBaseClass IfcActorSelect

The actor select type allows a person, or an organization, or a person associated with an organization to be referenced.

NOTE Corresponds to the following entity in ISO 10303-41: person_organization_select.

HISTORY New entity in IFC Release 1.5.1

SELECT

IfcOrganization An organization. IfcPerson A person. IfcPersonAndOrganization A person related to an organization.

typedef IfcUtil::IfcBaseClass IfcAppliedValueSelect

IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.

Select from:

IfcMeasureWithUnit IfcMonetaryMeasure IfcRatioMeasure

HISTORY: New SELECT type in IFC 2x2.

Use definitions Selecting IfcMeasureWithUnit allows the specification of both the actual figure for the value together with the currency in which the value is represented. Selecting IfcMonetaryMeasure allows the specification only of the value, the currency being as set by the global context Selecting IfcRatioMeasure assumes that the amount is a percentage or other REAL number. Note that if the amount is normally specified as -20%, then this figure will need to be converted to a multiplier of 0.8

typedef IfcUtil::IfcBaseClass IfcAxis2Placement

Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.

NOTE: Corresponding STEP type: axis2_placement, please refer to ISO/IS 10303-42:1994, p. 19 for the final definition of the formal standard.

HISTORY: New type in IFC Release 1.5

typedef IfcUtil::IfcBaseClass IfcBendingParameterSelect

Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.

HISTORY New type in IFC Release 2x4

typedef IfcUtil::IfcBaseClass IfcBooleanOperand

Definition from ISO/CD 10303-42:1992: This select type identifies all those types of entities which may participate in a Boolean operation to form a CSG solid.

Definition from IAI: CSG primitives are out of scope for the current IFC Release. Only faceted B-reps, swept area solids and half space solids are available as Boolean operands. Boolean results themselves can be used as operands thus enabling nested Boolean operations.

NOTE Corresponding STEP type: boolean_operand, please refer to ISO/IS 10303-42:1994, p.167 for the final definition of the formal standard. In IFC Release 1.5.1 & 2.0 only Boolean results (IfcBooleanResult), half space solids (IfcHalfSpaceSolid), faceted B-Rep, extruded solids and revolved solids (IfcSolidModel) are defined for being valid Boolean operands.

HISTORY: New Type in IFC Release 1.5.1

typedef IfcUtil::IfcBaseClass IfcClassificationReferenceSelect

IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.

HISTORY: New Select Type in IFC2x

Select From:

IfcClassification (for classification information) IfcClassificationReference (for reference into a classification source)

typedef IfcUtil::IfcBaseClass IfcClassificationSelect

IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.

NOTE Generally, it is expected that selection will be by IfcClassificationReference to identify an individual classification notation that classifies an element in the building information model. For example an element, such as IfcTank, might be further classified by assigning an IfcClassificationReference with Identification = “L6814” and a ClassificationSource identifying the appropriate version of Uniclass. IfcClassification should only be selected in circumstances where there could be a need to indicate the classification system that will be used without associating a notation or reference to an individual object. This may occur for higher level objects such as IfcProject, IfcSystem, or similar. For example an IfcStructuralAnalysisModel might be classified to be applicable to a particular version of EuroCode.

HISTORY New select type in IFC2x

IFC2x4 CHANGE Select renamed from IfcClassificationNotationSelect.

Select from:

IfcClassification (for referencing a classification system) IfcClassificationReference (for referencing a classification item (or facet) inside a classification system)

typedef IfcUtil::IfcBaseClass IfcColour

Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.

NOTE Corresponding STEP name: colour. It has been made into a SELECT type in IFC to avoid multiple inheritance for pre defined colour. Please refer to ISO/IS 10303-46:1994, p. 138 for the final definition of the formal standard.

HISTORY New entity in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcColourOrFactor

The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.

HISTORY: New type in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcCoordinateReferenceSystemSelect

IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcCsgSelect

Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case. Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.

NOTE Corresponding ISO 10303-42 type: csg_select, please refer to ISO/IS 10303-42:1994, p.168 for the final definition of the formal standard.

HISTORY New Type in IFC Release 1.5.1.

typedef IfcUtil::IfcBaseClass IfcCurveFontOrScaledCurveFontSelect

Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.

NOTE Corresponding ISO 10303 name: curve_font_or_scaled_curve_font_select. Please refer to ISO/IS 10303-46:1994 for the final definition of the formal standard.

HISTORY New entity in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcCurveOnSurface
typedef IfcUtil::IfcBaseClass IfcCurveOrEdgeCurve

IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model. SELECT

IfcCurve IfcEdgeCurve

HISTORY New select type in IFC2x Edition 3.

typedef IfcUtil::IfcBaseClass IfcCurveStyleFontSelect

Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.

NOTE Corresponding ISO 10303 name: curve_style_font_select. Please refer to ISO/IS 10303-46:1994 for the final definition of the formal standard.

HISTORY New entity in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcDefinitionSelect

IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition. SELECT

IfcObjectDefinition, IfcPropertyDefinition

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcDerivedMeasureValue

IfcDerivedMeasureValue is a select type for selecting between derived measure types.

SELECT

IfcAbsorbedDoseMeasure IfcAccelerationMeasure IfcAngularVelocityMeasure IfcCompoundPlaneAngleMeasure IfcDoseEquivalentMeasure IfcDynamicViscosityMeasure IfcElectricCapacitanceMeasure IfcElectricChargeMeasure IfcElectricConductanceMeasure IfcElectricResistanceMeasure IfcElectricVoltageMeasure IfcEnergyMeasure IfcForceMeasure IfcFrequencyMeasure IfcHeatFluxDensityMeasure IfcIlluminanceMeasure IfcInductanceMeasure IfcIntegerCountRateMeasure IfcIsothermalMoisturecapacityMeasure IfcKinematicViscosityMeasure IfcLinearForceMeasure IfcLinearMomentMeasure IfcLinearStiffnessMeasure IfcLinearVelocityMeasure IfcLuminousFluxMeasure IfcMagneticFluxDensityMeasure IfcMagneticFluxMeasure IfcMassDensityMeasure IfcMassFlowRateMeasure IfcModulusOfElasticityMeasure IfcModulusOfSubgradeReactionMeasure IfcMoistureDiffusivityMeasure IfcMolecularWeightMeasure IfcMomentOfInertiaMeasure IfcMonetaryMeasure IfcPlanarForceMeasure IfcPowerMeasure IfcPressureMeasure IfcRadioActivityMeasure IfcRotationalFrequencyMeasure IfcRotationalStiffnessMeasure IfcShearModulusMeasure IfcSpecificHeatCapacityMeasure IfcThermalAdmittanceMeasure IfcThermalConductivityMeasure IfcThermalResistanceMeasure IfcThermalTransmittanceMeasure IfcTimeStamp IfcTorqueMeasure IfcVaporPermeabilityMeasure IfcVolumetricFlowRateMeasure IfcCurvatureMeasure IfcMassPerLengthMeasure IfcRotationalMassMeasure IfcSectionalAreaIntegralMeasure IfcSectionModulusMeasure IfcTemperatureGradientMeasure IfcTemperatureRateOfChangeMeasure IfcWarpingConstantMeasure IfcWarpingMomentMeasure IfcThermalExpansionCoefficientMeasure IfcModulusOfLinearSubgradeReactionMeasure IfcModulusOfRotationalSubgradeReactionMeasure IfcLuminousIntensityDistributionMeasure IfcSoundPowerMeasure IfcSoundPressureMeasure

HISTORY New type in IFC Release 2x.

IFC2x4 change: added IfcTemperatureRateOfChangeMeasure.

typedef IfcUtil::IfcBaseClass IfcDocumentSelect

IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.

HISTORY: New Select Type in IFC 2x

Select From:

IfcDocumentInformation (for “metadata” of an external document) IfcDocumentReference (for reference within a document)

typedef IfcUtil::IfcBaseClass IfcFillStyleSelect

Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.

NOTE Corresponding ISO 10303 name: fill_style_select. Please refer to ISO/IS 10303-46:1994 for the final definition of the formal standard.

HISTORY New type in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcGeometricSetSelect

Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.

NOTE: Corresponding ISO 10303 type: geometric_set_select. Please refer to ISO/IS 10303-42:1994, p. 169 for the final definition of the formal standard.

HISTORY: New type in IFC Release 2x.

typedef IfcUtil::IfcBaseClass IfcGridPlacementDirectionSelect

IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.

SELECT

IfcDirection, IfcVirtualGridIntersection

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcHatchLineDistanceSelect

The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.

HISTORY New type in IFC2x3.

typedef IfcUtil::IfcBaseClass IfcLayeredItem

Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.

It is the collection of all those items, that are assigned to a single layer. These items are representation items or complete representations (IfcRepresentationItem, IfcRepresentation). If an IfcRepresentation is referenced, all IfcRepresentationItem within its set of Items are assigned to the same layer.

NOTE: Corresponding ISO 10303 name: layered_item. It was called layered_things in the ISO/CD version and had been renamed to layered_item in the ISO/IS final version. Please refer to ISO/IS 10303-46:1994, p. 13 for the final definition of the formal standard.

HISTORY: New type in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcLibrarySelect

IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.

HISTORY: New Select Type in IFC2x

Select From:

IfcLibraryInformation (for library information) IfcLibraryReference (for reference into a library of information by location)

Generally, it is expected that selection will be IfcLibraryReference and only rarely IfcLibraryInformation. IfcLibraryInformation should only be selected in circumstances where there could be a need to indicate the libraries that will be used without making individual references. This may occur for higher level objects such as a project or building.

typedef IfcUtil::IfcBaseClass IfcLightDistributionDataSourceSelect

A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.

The light distribution provides the luminous intensity distribution according to some standardized light distribution curves.

Select:

Type Definition

IfcExternalReference Light distribution is represented by a standard photometric data file such as Eulumdat, IES, CIBSE TM14.

IfcLightIntensityDistribution For representing a light distribution directly the following values needs to be given in a table like structure with column and row headings. These headings should contain the angles (C/γ or B/β ) and the table body contains the intensity values, (normally normalized to cd/Klm). The angles can be non- equidistant and the angle steps can be almost any value in the valid range, so a list of all available angles in both directions covers all cases.

HISTORY New type in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcMaterialSelect

IfcMaterialSelect provides selection of either a material definition or a material usage definition that can be assigned to an element, a resource or another entity within IFC. SELECT

IfcMaterialDefinition

IfcMaterial IfcMaterialLayer IfcMaterialLayerSet IfcMaterialProfile IfcMaterialProfileSet IfcMaterialConstituent IfcMaterialConstituentSet

IfcMaterialUsageDefinition

IfcMaterialLayerSetUsage IfcMaterialProfileSetUsage

IfcMaterialList

HISTORY New select in IFC 1.0

IFC2x4 CHANGE The select now includes two new abstract entities IfcMaterialDefinition and IfcMaterialUsageDefinition with upward compatibility. The use of IfcMaterialList is deprecated from IFC2x4 onwards.

typedef IfcUtil::IfcBaseClass IfcMeasureValue

Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).

NOTE IfcMeasureValue is a select data type for most basic measure types coming from ISO 10303-41. Select item IfcNonNegativeLengthMeasure is in addition to ISO 10303-41.

NOTE Corresponding ISO 10303 name: measure_value, please refer to ISO/IS 10303-41 for the final definition of the formal standard.

HISTORY New type in IFC Release 1.5.1.

IFC 2x4 change: added IfcNonNegativeLengthMeasure

typedef IfcUtil::IfcBaseClass IfcMetricValueSelect

IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.

HISTORY: New type in IFC Release 2.0

Select

IfcCostValue IfcDateTime IfcMeasureWithUnit IfcTable IfcText IfcTimeSeries

typedef IfcUtil::IfcBaseClass IfcModulusOfRotationalSubgradeReactionSelect

Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.

HISTORY: New type in IFC 2x4.

typedef IfcUtil::IfcBaseClass IfcModulusOfSubgradeReactionSelect

Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.

HISTORY: New type in IFC 2x4.

typedef IfcUtil::IfcBaseClass IfcModulusOfTranslationalSubgradeReactionSelect

Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.

HISTORY: New type in IFC 2x4.

typedef IfcUtil::IfcBaseClass IfcObjectReferenceSelect

IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.

HISTORY New select type in IFC Release 2.0.

typedef IfcUtil::IfcBaseClass IfcPointOrVertexPoint

IfcPointOrVertexPointprovides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model. SELECT

IfcPoint, IfcVertexPoint

HISTORY New select type in IFC2x Edition 3.

typedef IfcUtil::IfcBaseClass IfcPresentationStyleSelect

Definition from ISO/CD 10303-46:1992: The presentation style select is a selection of one of many kinds of styles, a different one for each kind of geometric representation item to be styled.

NOTE Corresponding ISO 10303 name: presentation_style_Select. Please refer to ISO/IS 10303-46:1994 for the final definition of the formal standard.

HISTORY New type in IFC2x2.

IFC2x4 CHANGE The select type has been deprecated.

typedef IfcUtil::IfcBaseClass IfcProcessSelect

IfcProcessSelectprovides the option to either select a process or activity occurrence, IfcProcess, or a process or activity type, IfcTypeProcess. SELECT

IfcProcess,

IfcTypeProcess

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcProductRepresentationSelect
typedef IfcUtil::IfcBaseClass IfcProductSelect

IfcProductSelectprovides the option to either select a product occurrence, IfcProduct, or a product type, IfcTypeProduct. SELECT

IfcProduct, IfcTypeProduct

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcPropertySetDefinitionSelect
typedef IfcUtil::IfcBaseClass IfcResourceObjectSelect

IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.

HISTORY New Select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcResourceSelect

IfcResourceSelectprovides the option to either select a resource occurrence, IfcResource, or a resource type, IfcTypeResource. SELECT

IfcResource, IfcTypeResource

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcRotationalStiffnessSelect

Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.

HISTORY: New type in IFC 2x4.

typedef IfcUtil::IfcBaseClass IfcSegmentIndexSelect
typedef IfcUtil::IfcBaseClass IfcShell

Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.

A shell of dimensionality 0 is represented by a graph consisting of a single vertex. The vertex shall not have any associated edges. A shell of dimensionality 1 is represented by a connected graph of dimensionality 1. A shell of dimensionality 2 is a topological entity constructed by joining faces along edges. Its domain, if present, is a connected, orientable 2-manifold with boundary, that is, a connected, oriented, finite, non-self-intersecting surface, which may be closed or open.

Shells of dimensionality 0 and 1 are not part of the current IFC release.

NOTE Corresponding ISO 10303 type: shell. Please refer to ISO/IS 10303-42:1994, p. 127 for the final definition of the formal standard. Only the select items closed_shell (IfcClosedShell) and open_shell (IfcOpenShell) have been incorporated in the current IFC release.

HISTORY New type in IFC2x.

typedef IfcUtil::IfcBaseClass IfcSimpleValue

IfcSimpleValue is a select type for selecting between simple value types.

SELECT

IfcInteger: Defined type of simple type INTEGER. IfcReal: Defined type of simple type REAL. IfcBoolean: Defined type of simple type BOOLEAN. IfcLogical: Defined type of simple type LOGICAL. IfcIdentifier: Defined type of simple type STRING for identification purposes. IfcLabel: Defined type of simple type STRING for naming purposes. IfcText: Defined type of simple type STRING for descriptive purposes. IfcDateTime: Defined type of simple type STRING to represent a date and time. IfcDate: Defined type of simple type STRING to represent a date. IfcTime: Defined type of simple type STRING to represent a time. IfcDuration: Defined type of simple type STRING to represent a duration.

HISTORY New type in IFC Release 2x.

IFC2x4 CHANGE Items IfcDateTime, IfcDate, IfcTime, IfcDuration added.

typedef IfcUtil::IfcBaseClass IfcSizeSelect

Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.

Definition from ISO: The size (or width) measure value is given in the global drawing length units.

NOTE global units are defined at the single IfcProject instance, given by UnitsInContext:IfcUnitAssignment, the same units are used for the geometric representation items and for the style definitions.

NOTE Corresponding ISO 10303 name: size_select. Please refer to ISO/IS 10303-46:1994 for the final definition of the formal standard.

HISTORY New type in IFC2x2.

IFC2x3 CHANGE The SELECT item IfcMeasureWithUnit has been removed from the IfcSizeSelect, the IfcRatioMeasure and IfcDescriptiveMeasure has been added.

typedef IfcUtil::IfcBaseClass IfcSolidOrShell

The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model. SELECT

IfcSolidModel IfcClosedShell

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcSpaceBoundarySelect

Definition from IAI: The IfcSpaceBoundarySelectselects either an internal space for internal or external space boundaries, or an external spatial element for external space boundaries at the outer envelop of the building. SELECT

IfcSpace, IfcExternalSpatialElement

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcSpecularHighlightSelect

The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.

NOTE: The two select types relate to the different ways to specifiy the sharpness (or shininess) of the specular part of the reflectance equation. It relates to the attributes:

in ISO10303-46 the attribute specular_exponent is given in VRML97 the attribute shininess is given

For each surface side style only one of the two methods is needed for calculating the specular part of the equation.

HISTORY: New type in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcStructuralActivityAssignmentSelect

Definition from IAI: This type definition shall be used to distinguish between a reference to an instance either of IfcStructuralItem or IfcBuildingElement. The IfcStructuralActivityAssignmentSelect type is referenced by the entity IfcRelConnectsStructuralActivity which defines the connection between activities (IfcStructuralActivity) and the loaded element.

HISTORY: New type in Release IFC2x Edition 2.

typedef IfcUtil::IfcBaseClass IfcStyleAssignmentSelect

The style assignment select is a selection of two wasy of assigning presentation styles to an IfcStyledItem.

by directly assigning presentation styles as subtypes of IfcPresentationStyle by assigning presentation stypes via an intermediate collection entity IfcPresentationStyleAssignment

NOTE Using IfcPresentationStyleAssignment is deprecated in IFC2x4 onwards

NOTE The select type has been introduced to provide an upward compatible improvement for assigning styles to a styled items.

HISTORY New select type in IFC2x4.

typedef IfcUtil::IfcBaseClass IfcSurfaceOrFaceSurface

IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model. SELECT

IfcSurface IfcFaceSurface IfcFaceBasedSurfaceModel (a connected face set, representing a faceted surface as an approximation of a non planar, non rectangular bounded surface)

HISTORY New select type in IFC2x3.

typedef IfcUtil::IfcBaseClass IfcSurfaceStyleElementSelect

Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.

The select type only includes the IfcSurfaceStyleRendering (which is the equivalent to surface_style_rendering) from the select type surface_style_element_select. In addition it has the IfcSurfaceStyleLighting, which holds the exact physically based lighting properties for lighting based calculation algorithms (as the opposite to the rendering based calculation), the IfcSurfaceStyleRefraction (for more advanced refraction indices) and IfcSurfaceStyleWithTextures (to allow for image textures applied to surfaces). In addition an IfcExternallyDefinedSurfaceStyle can be selected that points into an external material library.

NOTE The IfcSurfaceLightingProperties are needed for exact lighting calculation, because physically based lighting calculation algorithms need exact physically based parameters. The factors in IfcSurfaceStyleRendering lack the physical base, they are intended for rendering calculations, but a lighting calculation based software cannot use these values.

NOTE: Corresponding ISO 10303 type: surface_style_element_select. Please refer to ISO/IS 10303-46:1994, p. 85 for the final definition of the formal standard.

HISTORY: New Select type in IFC2x2.

typedef IfcUtil::IfcBaseClass IfcTextFontSelect

IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.

NOTE IfcTextFontSelect is an entity that had been adopted from ISO 10303, Industrial automation systems and integration—Product data representation and exchange, Part 46: Integrated generic resources: Visual presentation. Corresponding ISO 10303 name: font_select. Please refer to ISO/IS 10303-46:1994, p. 133 for the final definition of the formal standard.

HISTORY New type in IFC2x2.

IFC2x3 CHANGE The select type has been renamed from IfcFontSelect.

typedef IfcUtil::IfcBaseClass IfcTimeOrRatioSelect

IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure. HISTORY New SELECT in IFC2x4

typedef IfcUtil::IfcBaseClass IfcTranslationalStiffnessSelect

Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.

HISTORY: New type in IFC 2x4.

typedef IfcUtil::IfcBaseClass IfcTrimmingSelect

Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.

NOTE Corresponding ISO 10303 type: trimming_select, please refer to ISO/IS 10303-42:1994, p. 20 for the final definition of the formal standard.

HISTORY New Type in IFC Release 1.0

typedef IfcUtil::IfcBaseClass IfcUnit

Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.

NOTE: Select item IfcMonetaryUnit is an addition to ISO 10303-41.

NOTE: Corresponding ISO 10303 name: unit, please refer to ISO/IS 10303-41 for the final definition of the formal standard.

SELECT

IfcNamedUnit: A unit which is identified by a name. IfcDerivedUnit: A unit which is derived from an expression of units. IfcMonetaryUnit: A unit for defining currencies.

HISTORY: New type in IFC Release 1.5.1.

typedef IfcUtil::IfcBaseClass IfcValue

IfcValue is a select type for selecting between more specialised select types IfcSimpleValue, IfcMeasureValue and IfcDerivedMeasureValue.

SELECT

IfcSimpleValue A select type for basic defined types of simple data type. IfcMeasureValue A select type for basic measure types of ISO 10303-41. IfcDerivedMeasureValue A select type for derived measure types.

HISTORY New type in IFC Release 2x.

typedef IfcUtil::IfcBaseClass IfcVectorOrDirection

Definition from ISO/CD 10303-42:1992: This type is used to identify the types of entity which can participate in vector computations.

NOTE Corresponding STEP type: vector_or_direction, please refer to ISO/IS 10303-42:1994, p. 20 for the final definition of the formal standard.

HISTORY New Type in IFC Release 1.5

typedef IfcUtil::IfcBaseClass IfcWarpingStiffnessSelect

Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.

HISTORY: New type in IFC 2x4.

Public Static Functions

const IfcParse::schema_definition &get_schema()

Public Static Attributes

const char *const Identifier
class IfcAbsorbedDoseMeasure : public IfcUtil::IfcBaseType

IfcAbsorbedDoseMeasure is a measure of the absorbed radioactivity dose. Usually measured in Gray (Gy, J/kg). Type: REAL

HISTORY New type in IFC Release 2x.

Public Functions

const IfcParse::type_declaration &declaration() const
IfcAbsorbedDoseMeasure(IfcEntityInstanceData *e)
IfcAbsorbedDoseMeasure(double v)
operator double() const

Public Static Functions

const IfcParse::type_declaration &Class()
class IfcAccelerationMeasure : public IfcUtil::IfcBaseType

IfcAccelerationMeasure is a measure of acceleration. Usually measured in m/s2. Type: REAL

HISTORY New type in IFC Release 2x.

Public Functions

const IfcParse::type_declaration &declaration() const
IfcAccelerationMeasure(IfcEntityInstanceData *e)
IfcAccelerationMeasure(double v)
operator double() const

Public Static Functions

const IfcParse::type_declaration &Class()
class IfcActionRequest : public Ifc4::IfcControl

A request is the act or instance of asking for something, such as a request for information, bid submission, or performance of work.

Requests may take many forms depending on the need including fault reports for maintenance, requests for small works, and purchase requests (where these are to be made through a help desk or buying function).

HISTORY: New entity in IFC2x2 IFC2x4 CHANGE RequestID renamed to Identification and promoted to supertype IfcControl, attributes PredefinedType, Status, and LongDescription added.

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Refer to the documentation at the supertype IfcControl and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_ActionRequest

Declaration Use Definition The IfcActionRequest may be declared within the project using the IfcRelDeclares relationship where RelatingContext refers to the single IfcProject and RelatedDefinitions contains the IfcActionRequest. Alternatively, if the IfcActionRequest is aggregated within an IfcWorkPlan, then it shall not have a direct declaration relationship (whereas the containing work plan may have a declaration relationship).

Composition Use Definition As shown in Figure 155, an IfcActionRequest may be aggregated into components using IfcRelAggregates where RelatingObject refers to the enclosing IfcActionRequest and RelatedObjects contains one or more components. Aggregation use is defined for the following predefined types:

(All Types): May contain IfcCostSchedule components. A cost schedule may indicate costs and quantities where the cost schedule type may designate whether rates and/or quantities are estimated or final. Such cost schedule may have assigned cost items indicating detail, where each cost item may have assigned products, processes, or resources.

The IfcActionRequest may be nested into sub-items using IfcRelNests where RelatingObject refers to the enclosing IfcActionRequest and RelatedObjects contains one or more sub-items. Nesting use is defined for the following predefined types:

(All Types): May contain IfcActionRequest sub-items. A request may be nested into follow-up requests, in order of issue.

Figure 155 — Action request composition

Assignment Use Definition As shown in Figure 156, an IfcActionRequest may be assigned to the following entities using relationships as indicated:

IfcActor (IfcRelAssignsToActor): Person or organization issuing the request such as a tenant or owner.

The IfcActionRequest may have assignments of its own using the IfcRelAssignsToControl relationship where RelatingControl refers to the IfcActionRequest and RelatedObjects contains one or more objects of the following types: IfcActor: Person or organization(s) fulfilling the request such as a facilities manager or contractor.

Figure 156 — Action request assignment

Approval Use Definition Approvals may be associated to indicate the status of acceptance or rejection using the IfcRelAssociatesApproval relationship where RelatingApproval refers to an IfcApproval and RelatedObjects contains the IfcActionRequest. Approvals may be split into sub-approvals using IfcApprovalRelationship to track approval status separately for each party where RelatingApproval refers to the higher-level approval and RelatedApprovals contains one or more lower-level approvals. The hierarchy of approvals implies sequencing such that a higher-level approval is not executed until all of its lower-level approvals have been accepted.

Public Types

typedef IfcTemplatedEntityList<IfcActionRequest> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcActionRequest.

::Ifc4::IfcActionRequestTypeEnum::Value PredefinedType() const

Identifies the predefined type of sources through which a request can be made.

IFC2x4 CHANGE The attribute has been added.

void setPredefinedType(::Ifc4::IfcActionRequestTypeEnum::Value v)
bool hasStatus() const

Whether the optional attribute Status is defined for this IfcActionRequest.

std::string Status() const

The status currently assigned to the request. Possible values include: Hold: wait to see if further requests are received before deciding on action NoAction: no action is required on this request Schedule: plan action to take place as part of maintenance or other task planning/scheduling Urgent: take action immediately

IFC2x4 CHANGE The attribute has been added.

void setStatus(std::string v)
bool hasLongDescription() const

Whether the optional attribute LongDescription is defined for this IfcActionRequest.

std::string LongDescription() const

Detailed description of the permit.

IFC2x4 CHANGE The attribute has been added.

void setLongDescription(std::string v)
const IfcParse::entity &declaration() const
IfcActionRequest(IfcEntityInstanceData *e)
IfcActionRequest(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, boost::optional<std::string> v6_Identification, boost::optional<::Ifc4::IfcActionRequestTypeEnum::Value> v7_PredefinedType, boost::optional<std::string> v8_Status, boost::optional<std::string> v9_LongDescription)

Public Static Functions

const IfcParse::entity &Class()
struct IfcActionRequestTypeEnum

Public Types

enum Value

IfcActionRequestTypeEnum defines the types of sources through which a request can be made. HISTORY: New Enumeration in IFC2x4. Enumeration:

EMAIL: Request was made through email. FAX: Request was made through facsimile. PHONE: Request was made verbally over a telephone. POST: Request was made through postal mail. VERBAL: Request was made verbally in person.

USERDEFINED: User-defined type. NOTDEFINED: Undefined type.

Values:

enumerator IfcActionRequestType_EMAIL
enumerator IfcActionRequestType_FAX
enumerator IfcActionRequestType_PHONE
enumerator IfcActionRequestType_POST
enumerator IfcActionRequestType_VERBAL
enumerator IfcActionRequestType_USERDEFINED
enumerator IfcActionRequestType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
struct IfcActionSourceTypeEnum

Public Types

enum Value

Definition from IAI:This enumeration type contains possible action sources.

HISTORY: New type in Release IFC2x Edition 2.

Values:

enumerator IfcActionSourceType_DEAD_LOAD_G
enumerator IfcActionSourceType_COMPLETION_G1
enumerator IfcActionSourceType_LIVE_LOAD_Q
enumerator IfcActionSourceType_SNOW_S
enumerator IfcActionSourceType_WIND_W
enumerator IfcActionSourceType_PRESTRESSING_P
enumerator IfcActionSourceType_SETTLEMENT_U
enumerator IfcActionSourceType_TEMPERATURE_T
enumerator IfcActionSourceType_EARTHQUAKE_E
enumerator IfcActionSourceType_FIRE
enumerator IfcActionSourceType_IMPULSE
enumerator IfcActionSourceType_IMPACT
enumerator IfcActionSourceType_TRANSPORT
enumerator IfcActionSourceType_ERECTION
enumerator IfcActionSourceType_PROPPING
enumerator IfcActionSourceType_SYSTEM_IMPERFECTION
enumerator IfcActionSourceType_SHRINKAGE
enumerator IfcActionSourceType_CREEP
enumerator IfcActionSourceType_LACK_OF_FIT
enumerator IfcActionSourceType_BUOYANCY
enumerator IfcActionSourceType_ICE
enumerator IfcActionSourceType_CURRENT
enumerator IfcActionSourceType_WAVE
enumerator IfcActionSourceType_RAIN
enumerator IfcActionSourceType_BRAKES
enumerator IfcActionSourceType_USERDEFINED
enumerator IfcActionSourceType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
struct IfcActionTypeEnum

Public Types

enum Value

Definition from IAI: This enumeration type is used to distinguish between possible action types at a high level. It can be used for an automated definition of load combinations and for dimensioning. The contained items and their acronyms are adopted from the Eurocode standard.

HISTORY: New type in Release IFC2x Edition 2.

Values:

enumerator IfcActionType_PERMANENT_G
enumerator IfcActionType_VARIABLE_Q
enumerator IfcActionType_EXTRAORDINARY_A
enumerator IfcActionType_USERDEFINED
enumerator IfcActionType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcActor : public Ifc4::IfcObject

The IfcActor defines all actors or human agents involved in a project during its full life cycle. It facilitates the use of person and organization definitions in the resource part of the IFC object model. This includes name, address, telecommunication addresses, and roles.

HISTORY New Entity in IFC Release 2.0

Relationship use definition Actors are assigned (such as to a process or a resource) by the relationship object that refers to the corresponding object:

Process: assigned using IfcRelAssignsToProcess Resource: assigned using IfcRelAssignsToResource

Property set use definition The property sets relating to the IfcActor are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the inverse IsDefinedBy relationship. The following property set definitions specific to IfcActor are part of this IFC release:

Pset_ActorCommon: common property set for all actor occurrences

Subclassed by Ifc4::IfcOccupant

Public Types

typedef IfcTemplatedEntityList<IfcActor> list

Public Functions

::Ifc4::IfcActorSelect *TheActor() const

Information about the actor.

void setTheActor(::Ifc4::IfcActorSelect *v)
IfcTemplatedEntityList<IfcRelAssignsToActor>::ptr IsActingUpon() const
const IfcParse::entity &declaration() const
IfcActor(IfcEntityInstanceData *e)
IfcActor(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcActorSelect *v6_TheActor)

Public Static Functions

const IfcParse::entity &Class()
class IfcActorRole : public IfcUtil::IfcBaseEntity

Definition: A role which is performed by an actor, either a person, an organization or a person related to an organization.

NOTE: The list of roles of the enumeration values of the Role attribute can never be complete. Therefore using enumeration value USERDEFINED, the user can provide his/her own role as a value of the attribute UserDefinedRole.

Corresponds to the following entity in ISO-10303-41: organization_role and person_role.

HISTORY New entity in IFC Release 1.5.1

Public Types

typedef IfcTemplatedEntityList<IfcActorRole> list

Public Functions

::Ifc4::IfcRoleEnum::Value Role() const

The name of the role played by an actor. If the Role has value USERDEFINED, then the user defined role shall be provided as a value of the attribute UserDefinedRole.

void setRole(::Ifc4::IfcRoleEnum::Value v)
bool hasUserDefinedRole() const

Whether the optional attribute UserDefinedRole is defined for this IfcActorRole.

std::string UserDefinedRole() const

Allows for specification of user defined roles beyond the enumeration values provided by Role attribute of type IfcRoleEnum. When a value is provided for attribute UserDefinedRole in parallel the attribute Role shall have enumeration value USERDEFINED.

void setUserDefinedRole(std::string v)
bool hasDescription() const

Whether the optional attribute Description is defined for this IfcActorRole.

std::string Description() const

A textual description relating the nature of the role played by an actor.

void setDescription(std::string v)
IfcTemplatedEntityList<IfcExternalReferenceRelationship>::ptr HasExternalReference() const
const IfcParse::entity &declaration() const
IfcActorRole(IfcEntityInstanceData *e)
IfcActorRole(::Ifc4::IfcRoleEnum::Value v1_Role, boost::optional<std::string> v2_UserDefinedRole, boost::optional<std::string> v3_Description)

Public Static Functions

const IfcParse::entity &Class()
class IfcActuator : public Ifc4::IfcDistributionControlElement

An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion.

HISTORY New entity in IFC2x4

Type Use Definition IfcActuator defines the occurrence of any actuator; common information about actuator types is handled by IfcActuatorType. The IfcActuatorType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcActuatorType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcActuatorType has ports or aggregated elements, such objects are reflected at the IfcActuator occurrence using the IfcRelDefinesByObject relationship.

Property Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Property sets may also be specified at the IfcActuatorType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcActuatorType.HasPropertySets. If both are given, then the properties directly defined at IfcActuator override the properties defined at IfcActuatorType. Refer to the documentation at the supertype IfcDistributionControlElement and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: (All Types)

Pset_ActuatorPHistory (PSET_PERFORMANCEDRIVEN) Pset_ActuatorTypeCommon (PSET_TYPEDRIVENOVERRIDE) Pset_ActuatorTypeLinearActuation (PSET_TYPEDRIVENOVERRIDE) Pset_ActuatorTypeRotationalActuation (PSET_TYPEDRIVENOVERRIDE)

ELECTRICACTUATOR

Pset_ActuatorTypeElectricActuator (PSET_TYPEDRIVENOVERRIDE)

HYDRAULICACTUATOR

Pset_ActuatorTypeHydraulicActuator (PSET_TYPEDRIVENOVERRIDE)

PNEUMATICACTUATOR

Pset_ActuatorTypePneumaticActuator (PSET_TYPEDRIVENOVERRIDE)

Quantity Use Definition The quantities relating to this entity are defined by IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. The following base quantities are defined and shall be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, may be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement shall be provided.

Qto_ActuatorBaseQuantities

Material Use Definition The material of the IfcActuator is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcActuatorType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Casing: Material from which the casing is constructed.

Connection Use Definition The IfcActuator may be connected to other objects as follows using the indicated relationship:

IfcFlowController (IfcRelFlowControlElements): Indicates a connected valve, damper, or switch controlled by the actuator.

Port Use Definition The distribution ports relating to the IfcActuator are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. If the actuator occurrence is defined by IfcActuatorType, then the port occurrences must reflect those defined at the IfcActuatorType using the IfcRelDefinesByObject relationship. Ports are specific to the IfcActuator PredefinedType as follows indicated by the IfcDistributionPort Name, PredefinedType, and FlowDirection:

Input (SIGNAL, SINK): Receives signal.

Public Types

typedef IfcTemplatedEntityList<IfcActuator> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcActuator.

::Ifc4::IfcActuatorTypeEnum::Value PredefinedType() const
void setPredefinedType(::Ifc4::IfcActuatorTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcActuator(IfcEntityInstanceData *e)
IfcActuator(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4::IfcActuatorTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
class IfcActuatorType : public Ifc4::IfcDistributionControlElementType

The distribution control element type IfcActuatorType defines commonly shared information for occurrences of actuators. The set of shared information may include:

common properties with shared property sets common representations of shape common materials common composition of elements common ports applicable assignment of process types

It is used to define a actuator specification (i.e. the specific product information, that is common to all occurrences of that product type). Actuator types may be exchanged without being already assigned to occurrences. Occurrences of IfcActuatorType are represented by instances of IfcActuator.

HISTORY: New entity in IFC2x2

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the HasPropertySets attribute. Refer to the documentation at the supertype IfcDistributionControlElementType and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity according to the PredefinedType attribute:

Pset_ActuatorTypeCommon Pset_ActuatorTypeElectricActuator (ELECTRICACTUATOR) Pset_ActuatorTypeHydraulicActuator (HYDRAULICACTUATOR) Pset_ActuatorTypeLinearActuation Pset_ActuatorTypePneumaticActuator (PNEUMATICACTUATOR) Pset_ActuatorTypeRotationalActuation

Material Use Definition The material of the IfcActuatorType is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

‘Casing’: Material from which the casing is constructed.

Port Use Definition The distribution ports relating to the IfcActuatorType type are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. Ports are reflected at occurrences of this type using the IfcRelDefinesByObject relationship. Refer to the documentation at IfcActuator for standard port definitions.

Public Types

typedef IfcTemplatedEntityList<IfcActuatorType> list

Public Functions

::Ifc4::IfcActuatorTypeEnum::Value PredefinedType() const

Identifies the predefined types of actuator from which the type required may be set.

void setPredefinedType(::Ifc4::IfcActuatorTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcActuatorType(IfcEntityInstanceData *e)
IfcActuatorType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ApplicableOccurrence, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcPropertySetDefinition>::ptr> v6_HasPropertySets, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcRepresentationMap>::ptr> v7_RepresentationMaps, boost::optional<std::string> v8_Tag, boost::optional<std::string> v9_ElementType, ::Ifc4::IfcActuatorTypeEnum::Value v10_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
struct IfcActuatorTypeEnum

Public Types

enum Value

The IfcActuatorTypeEnum defines the range of different types of actuator that can be specified.

HISTORY: New type in IFC R2.0

Enumeration

ELECTRICACTUATOR: A device that electrically actuates a control element.

PNEUMATICACTUATOR<: A device that pneumatically actuates a control element

HYDRAULICACTUATOR: A device that electrically actuates a control element.

HANDOPERATEDACTUATOR: A device that manually actuates a control element. THERMOSTATICACTUATOR: A device that thermostatically actuates a control element. USERDEFINED: User-defined type. NOTDEFINED: Undefined type.

See property set of actuator common attributes for specification of properties for hand operated actuators.

Values:

enumerator IfcActuatorType_ELECTRICACTUATOR
enumerator IfcActuatorType_HANDOPERATEDACTUATOR
enumerator IfcActuatorType_HYDRAULICACTUATOR
enumerator IfcActuatorType_PNEUMATICACTUATOR
enumerator IfcActuatorType_THERMOSTATICACTUATOR
enumerator IfcActuatorType_USERDEFINED
enumerator IfcActuatorType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAddress : public IfcUtil::IfcBaseEntity

Definition: An abstract entity type for various kinds of postal and telecom addresses.

NOTE Corresponds to the following entity in ISO-10303-41: address.

HISTORY New entity in IFC Release 1.5.1.

Subclassed by Ifc4::IfcPostalAddress, Ifc4::IfcTelecomAddress

Public Types

typedef IfcTemplatedEntityList<IfcAddress> list

Public Functions

bool hasPurpose() const

Whether the optional attribute Purpose is defined for this IfcAddress.

::Ifc4::IfcAddressTypeEnum::Value Purpose() const

Identifies the logical location of the address.

void setPurpose(::Ifc4::IfcAddressTypeEnum::Value v)
bool hasDescription() const

Whether the optional attribute Description is defined for this IfcAddress.

std::string Description() const

Text that relates the nature of the address.

void setDescription(std::string v)
bool hasUserDefinedPurpose() const

Whether the optional attribute UserDefinedPurpose is defined for this IfcAddress.

std::string UserDefinedPurpose() const

Allows for specification of user specific purpose of the address beyond the enumeration values provided by Purpose attribute of type IfcAddressTypeEnum. When a value is provided for attribute UserDefinedPurpose, in parallel the attribute Purpose shall have enumeration value USERDEFINED.

void setUserDefinedPurpose(std::string v)
IfcTemplatedEntityList<IfcPerson>::ptr OfPerson() const
IfcTemplatedEntityList<IfcOrganization>::ptr OfOrganization() const
const IfcParse::entity &declaration() const
IfcAddress(IfcEntityInstanceData *e)
IfcAddress(boost::optional<::Ifc4::IfcAddressTypeEnum::Value> v1_Purpose, boost::optional<std::string> v2_Description, boost::optional<std::string> v3_UserDefinedPurpose)

Public Static Functions

const IfcParse::entity &Class()
struct IfcAddressTypeEnum

Public Types

enum Value

Definition from IAI: Identifies the logical location of the address.

HISTORY New type in IFC Release 2x.

ENUMERATION

OFFICE An office address. SITE A site address. HOME A home address. DISTRIBUTIONPOINT A postal distribution point address. USERDEFINED A user defined address type to be provided.

Values:

enumerator IfcAddressType_OFFICE
enumerator IfcAddressType_SITE
enumerator IfcAddressType_HOME
enumerator IfcAddressType_DISTRIBUTIONPOINT
enumerator IfcAddressType_USERDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAdvancedBrep : public Ifc4::IfcManifoldSolidBrep

An advanced B-rep is a boundary representation model in which all faces, edges and vertices are explicitly represented. It is a solid with explicit topology and elementaty or free-form geometry. The faces of the B-rep are of type IfcAdvancedFace. An advanced B-rep has to meet the same topological constraints as the manifold solid B-rep. NOTE The advanced B-rep has been introduced in order to support the increasing number of applications that can define and exchange B-rep models based on NURBS or other b-spline surfaces.

NOTE Corresponding ISO 10303-42 entity: advanced_brep_shape_representation. Please refer to ISO/IS 10303-514:1999 for the final definition of the formal standard. There is no explicit entity in ISO 10303-42 for an advanced B-rep, the advanced_brep_shape_representation only ensures that only such kind of manifold B-rep’s are used in a shape representation.

HISTORY New entity in IFC2x4

Informal proposition:

each face is a face surface; each face surface has its geometry defined by an elementary surface, swept surface or a b-spline surface; the edges used to define the boundaries of the face shall all reference an edge curve each curve used to define the geometry of the faces and face bounds shall be either a conic, or a line or a polyline or a b-spline curve the edges used to define the face boundaries shall all be trimmed by vertices of type vertex point no loop used to define a face bound shall be of the oriented subtype

Figure 249 illustrates use of IfcAdvancedBrep for boundary representation models with b-spline surfaces. The diagram shows the topological and geometric representation items that are used for advanced B-reps, based on IfcAdvancedFace.

Figure 249 — Advanced Brep

Subclassed by Ifc4::IfcAdvancedBrepWithVoids

Public Types

typedef IfcTemplatedEntityList<IfcAdvancedBrep> list

Public Functions

const IfcParse::entity &declaration() const
IfcAdvancedBrep(IfcEntityInstanceData *e)
IfcAdvancedBrep(::Ifc4::IfcClosedShell *v1_Outer)

Public Static Functions

const IfcParse::entity &Class()
class IfcAdvancedBrepWithVoids : public Ifc4::IfcAdvancedBrep

The IfcAdvancedBrepWithVoids is a specialization of an advanced B-rep which contains one or more voids in its interior. The voids are represented as closed shells which are defined so that the shell normal point into the void.

NOTE Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC advanced B-rep with voids is represented by this subtype IfcAdvancedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of manifold_solid_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model.

HISTORY New entity in IFC2x4

Informal propositions:

Each void shell shall be disjoint from the outer shell and from every other void shell Each void shell shall be enclosed within the outer shell but not within any other void shell. In particular the outer shell is not in the set of void shells Each shell in the IfcManifoldSolidBrep shall be referenced only once. All the faces of all the shells in the IfcAdvancedBrep and the IfcAdvancedBrepWithVoids.Voids shall be of type IfcAdvancedFace.

Public Functions

IfcTemplatedEntityList<::Ifc4::IfcClosedShell>::ptr Voids() const
void setVoids(IfcTemplatedEntityList<::Ifc4::IfcClosedShell>::ptr v)
const IfcParse::entity &declaration() const
IfcAdvancedBrepWithVoids(IfcEntityInstanceData *e)
IfcAdvancedBrepWithVoids(::Ifc4::IfcClosedShell *v1_Outer, IfcTemplatedEntityList<::Ifc4::IfcClosedShell>::ptr v2_Voids)

Public Static Functions

const IfcParse::entity &Class()
class IfcAdvancedFace : public Ifc4::IfcFaceSurface

An advanced face is a specialization of a face surface that has to meet requirements on using particular topological and geometric representation items for the definition of the faces, edges and vertices.

An IfcAdvancedFace is restricted to:

have a face surface geometry of type IfcElementarySurface, IfcSweptSurface or IfcBSplineSurface have at least on IfcFaceOuterBound as the bound of the face have all faces to be bound by IfcEdgeLoop or IfcVertexLoop have all edges to have an edge curve geometry have the edge curve geometry restricted to IfcLine, IfcConic, IfcPolyline, or IfcBSplineCurve

NOTE Corresponding ISO 10303 entity: advanced_face. Please refer to ISO/IS 10303-511:1999 for the final definition of the formal standard.

HISTORY New entity in IFC2x4

Public Types

typedef IfcTemplatedEntityList<IfcAdvancedFace> list

Public Functions

const IfcParse::entity &declaration() const
IfcAdvancedFace(IfcEntityInstanceData *e)
IfcAdvancedFace(IfcTemplatedEntityList<::Ifc4::IfcFaceBound>::ptr v1_Bounds, ::Ifc4::IfcSurface *v2_FaceSurface, bool v3_SameSense)

Public Static Functions

const IfcParse::entity &Class()
class IfcAirTerminal : public Ifc4::IfcFlowTerminal

An air terminal is a terminating or origination point for the transfer of air between distribution system(s) and one or more spaces. It can also be used for the transfer of air between adjacent spaces.

HISTORY New entity in IFC2x4

Type Use Definition IfcAirTerminal defines the occurrence of any air terminal; common information about air terminal types is handled by IfcAirTerminalType. The IfcAirTerminalType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcAirTerminalType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcAirTerminalType has ports or aggregated elements, such objects are reflected at the IfcAirTerminal occurrence using the IfcRelDefinesByObject relationship. Figure 210 illustrates air terminal type use. Figure 210 — Air terminal type use

Property Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Property sets may also be specified at the IfcAirTerminalType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcAirTerminalType.HasPropertySets. If both are given, then the properties directly defined at IfcAirTerminal override the properties defined at IfcAirTerminalType. Refer to the documentation at the supertype IfcFlowTerminal and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AirTerminalOccurrence (PSET_OCCURRENCEDRIVEN) Pset_AirTerminalPHistory (PSET_PERFORMANCEDRIVEN) Pset_AirTerminalTypeCommon (PSET_TYPEDRIVENOVERRIDE)

Quantity Use Definition The quantities relating to this entity are defined by IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. The following base quantities are defined and shall be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, may be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement shall be provided.

Qto_AirTerminalBaseQuantities

Material Use Definition The material of the IfcAirTerminal is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcAirTerminalType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Body: The primary material from which the object is constructed.

Port Use Definition The distribution ports relating to the IfcAirTerminal are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. If the air terminal occurrence is defined by IfcAirTerminalType, then the port occurrences must reflect those defined at the IfcAirTerminalType using the IfcRelDefinesByObject relationship. Ports are specific to the IfcAirTerminal PredefinedType as follows indicated by the IfcDistributionPort Name, PredefinedType, and FlowDirection:

DIFFUSER

Air (AIRCONDITIONING, SINK): Supply air, typically connected from a duct segment or fitting.

GRILLE

Air (VENTILATION, SOURCE): Return air, typically connected to a duct segment or fitting.

REGISTER

Air (AIRCONDITIONING, SINK): Supply air, typically connected from a duct segment or fitting.

Figure 211 illustrates air terminal port use. Figure 211 — Air terminal port use

Public Types

typedef IfcTemplatedEntityList<IfcAirTerminal> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcAirTerminal.

::Ifc4::IfcAirTerminalTypeEnum::Value PredefinedType() const
void setPredefinedType(::Ifc4::IfcAirTerminalTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAirTerminal(IfcEntityInstanceData *e)
IfcAirTerminal(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4::IfcAirTerminalTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
class IfcAirTerminalBox : public Ifc4::IfcFlowController

An air terminal box typically participates in an HVAC duct distribution system and is used to control or modulate the amount of air delivered to its downstream ductwork. An air terminal box type is often referred to as an “air flow regulator”.

HISTORY New entity in IFC2x4

Type Use Definition IfcAirTerminalBox defines the occurrence of any air terminal box; common information about air terminal box types is handled by IfcAirTerminalBoxType. The IfcAirTerminalBoxType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcAirTerminalBoxType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcAirTerminalBoxType has ports or aggregated elements, such objects are reflected at the IfcAirTerminalBox occurrence using the IfcRelDefinesByObject relationship.

Property Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Property sets may also be specified at the IfcAirTerminalBoxType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcAirTerminalBoxType.HasPropertySets. If both are given, then the properties directly defined at IfcAirTerminalBox override the properties defined at IfcAirTerminalBoxType. Refer to the documentation at the supertype IfcFlowController and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AirTerminalBoxPHistory (PSET_PERFORMANCEDRIVEN) Pset_AirTerminalBoxTypeCommon (PSET_TYPEDRIVENOVERRIDE)

Quantity Use Definition The quantities relating to this entity are defined by IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. The following base quantities are defined and shall be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, may be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement shall be provided.

Qto_AirTerminalBoxBaseQuantities

Material Use Definition The material of the IfcAirTerminalBox is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcAirTerminalBoxType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Body: The primary material from which the object is constructed.

Port Use Definition The distribution ports relating to the IfcAirTerminalBox are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. If the air terminal box occurrence is defined by IfcAirTerminalBoxType, then the port occurrences must reflect those defined at the IfcAirTerminalBoxType using the IfcRelDefinesByObject relationship. Ports are specific to the IfcAirTerminalBox PredefinedType as follows indicated by the IfcDistributionPort Name, PredefinedType, and FlowDirection:

Inlet (AIRCONDITIONING, SINK): Incoming air. Outlet (AIRCONDITIONING, SOURCE): Outgoing regulated air.

Public Types

typedef IfcTemplatedEntityList<IfcAirTerminalBox> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcAirTerminalBox.

::Ifc4::IfcAirTerminalBoxTypeEnum::Value PredefinedType() const
void setPredefinedType(::Ifc4::IfcAirTerminalBoxTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAirTerminalBox(IfcEntityInstanceData *e)
IfcAirTerminalBox(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4::IfcAirTerminalBoxTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
class IfcAirTerminalBoxType : public Ifc4::IfcFlowControllerType

The flow controller type IfcAirTerminalBoxType defines commonly shared information for occurrences of air boxes. The set of shared information may include:

common properties with shared property sets common representations of shape common materials common composition of elements common ports applicable assignment of process types

It is used to define a air box specification (i.e. the specific product information, that is common to all occurrences of that product type). Air Box types may be exchanged without being already assigned to occurrences. Occurrences of IfcAirTerminalBoxType are represented by instances of IfcAirTerminalBox.

HISTORY: New entity in IFC2x2

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the HasPropertySets attribute. Refer to the documentation at the supertype IfcFlowControllerType and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AirTerminalBoxTypeCommon

Material Use Definition The material of the IfcAirTerminalBoxType is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

‘Body’: The primary material from which the object is constructed.

Port Use Definition The distribution ports relating to the IfcAirTerminalBoxType type are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. Ports are reflected at occurrences of this type using the IfcRelDefinesByObject relationship. Refer to the documentation at IfcAirTerminalBox for standard port definitions.

Public Types

typedef IfcTemplatedEntityList<IfcAirTerminalBoxType> list

Public Functions

::Ifc4::IfcAirTerminalBoxTypeEnum::Value PredefinedType() const

The air terminal box type.

void setPredefinedType(::Ifc4::IfcAirTerminalBoxTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAirTerminalBoxType(IfcEntityInstanceData *e)
IfcAirTerminalBoxType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ApplicableOccurrence, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcPropertySetDefinition>::ptr> v6_HasPropertySets, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcRepresentationMap>::ptr> v7_RepresentationMaps, boost::optional<std::string> v8_Tag, boost::optional<std::string> v9_ElementType, ::Ifc4::IfcAirTerminalBoxTypeEnum::Value v10_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
struct IfcAirTerminalBoxTypeEnum

Public Types

enum Value

This enumeration identifies different types of air terminal boxes.

Valid enumerations are:

CONSTANTFLOW: Terminal box does not include a means to reset the volume automatically to an outside signal such as thermostat. VARIABLEFLOWPRESSUREDEPENDANT: terminal box includes a means to reset the volume automatically to a different control point in response to an outside signal such as thermostat: air-flow rate depends on supply pressure. VARIABLEFLOWPRESSUREINDEPENDANT: terminal box includes a means to reset the volume automatically to a different control point in response to an outside signal such as thermostat: air-flow rate is independant of supply pressure. USERDEFINED: User-defined terminal box. NOTDEFINED: Undefined terminal box.

HISTORY: New enumeration in IFC R2.0

Values:

enumerator IfcAirTerminalBoxType_CONSTANTFLOW
enumerator IfcAirTerminalBoxType_VARIABLEFLOWPRESSUREDEPENDANT
enumerator IfcAirTerminalBoxType_VARIABLEFLOWPRESSUREINDEPENDANT
enumerator IfcAirTerminalBoxType_USERDEFINED
enumerator IfcAirTerminalBoxType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAirTerminalType : public Ifc4::IfcFlowTerminalType

The flow terminal type IfcAirTerminalType defines commonly shared information for occurrences of air terminals. The set of shared information may include:

common properties with shared property sets common representations of shape common materials common composition of elements common ports applicable assignment of process types

It is used to define a air terminal specification (i.e. the specific product information, that is common to all occurrences of that product type). Air Terminal types may be exchanged without being already assigned to occurrences. Occurrences of IfcAirTerminalType are represented by instances of IfcAirTerminal.

HISTORY: New entity in IFC2x2

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the HasPropertySets attribute. Refer to the documentation at the supertype IfcFlowTerminalType and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AirTerminalTypeCommon

Material Use Definition The material of the IfcAirTerminalType is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

‘Body’: The primary material from which the object is constructed.

Port Use Definition The distribution ports relating to the IfcAirTerminalType type are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. Ports are reflected at occurrences of this type using the IfcRelDefinesByObject relationship. Refer to the documentation at IfcAirTerminal for standard port definitions.

Public Types

typedef IfcTemplatedEntityList<IfcAirTerminalType> list

Public Functions

::Ifc4::IfcAirTerminalTypeEnum::Value PredefinedType() const
void setPredefinedType(::Ifc4::IfcAirTerminalTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAirTerminalType(IfcEntityInstanceData *e)
IfcAirTerminalType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ApplicableOccurrence, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcPropertySetDefinition>::ptr> v6_HasPropertySets, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcRepresentationMap>::ptr> v7_RepresentationMaps, boost::optional<std::string> v8_Tag, boost::optional<std::string> v9_ElementType, ::Ifc4::IfcAirTerminalTypeEnum::Value v10_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
struct IfcAirTerminalTypeEnum

Public Types

enum Value

Enumeration defining the functional types of air terminals. The IfcAirTerminalTypeEnum contains the following:

GRILLE: A covering for any area through which air passes. REGISTER: A grille typically equipped with a damper or control valve. DIFFUSER: An outlet discharging supply air in various directions and planes. LOUVRE: A rectilinear louvre. USERDEFINED: User-defined air terminal type. NOTDEFINED: Undefined air terminal type.

NOTE: Architectural louvres within doors or windows are defined by IfcPermeableCoveringProperties.

HISTORY: New enumeration in IFC R2x2. Modified in IFC R2x4 to add LOUVRE and remove EYEBALL, IRIS, LINEARGRILLE, LINEARDIFFUSER

Values:

enumerator IfcAirTerminalType_DIFFUSER
enumerator IfcAirTerminalType_GRILLE
enumerator IfcAirTerminalType_LOUVRE
enumerator IfcAirTerminalType_REGISTER
enumerator IfcAirTerminalType_USERDEFINED
enumerator IfcAirTerminalType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAirToAirHeatRecovery : public Ifc4::IfcEnergyConversionDevice

An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements.

HISTORY New entity in IFC2x4

Type Use Definition IfcAirToAirHeatRecovery defines the occurrence of any air to air heat recovery; common information about air to air heat recovery types is handled by IfcAirToAirHeatRecoveryType. The IfcAirToAirHeatRecoveryType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcAirToAirHeatRecoveryType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcAirToAirHeatRecoveryType has ports or aggregated elements, such objects are reflected at the IfcAirToAirHeatRecovery occurrence using the IfcRelDefinesByObject relationship.

Property Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Property sets may also be specified at the IfcAirToAirHeatRecoveryType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcAirToAirHeatRecoveryType.HasPropertySets. If both are given, then the properties directly defined at IfcAirToAirHeatRecovery override the properties defined at IfcAirToAirHeatRecoveryType. Refer to the documentation at the supertype IfcEnergyConversionDevice and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AirToAirHeatRecoveryPHistory (PSET_PERFORMANCEDRIVEN) Pset_AirToAirHeatRecoveryTypeCommon (PSET_TYPEDRIVENOVERRIDE)

Quantity Use Definition The quantities relating to this entity are defined by IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. The following base quantities are defined and shall be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, may be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement shall be provided.

Qto_AirToAirHeatRecoveryBaseQuantities

Material Use Definition The material of the IfcAirToAirHeatRecovery is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcAirToAirHeatRecoveryType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Body: The primary material from which the object is constructed. Media: The primary media material used for heat transfer.

Port Use Definition The distribution ports relating to the IfcAirToAirHeatRecovery are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. If the air to air heat recovery occurrence is defined by IfcAirToAirHeatRecoveryType, then the port occurrences must reflect those defined at the IfcAirToAirHeatRecoveryType using the IfcRelDefinesByObject relationship. Ports are specific to the IfcAirToAirHeatRecovery PredefinedType as follows indicated by the IfcDistributionPort Name, PredefinedType, and FlowDirection:

AirInlet (AIRCONDITIONING, SINK): Cold air in. AirOutlet (AIRCONDITIONING, SOURCE): Colder air out. ExhaustInlet (VENTILATION, SINK): Hot return air in. ExhaustOutlet (VENTILATION, SOURCE): Hotter return air out.

Public Types

typedef IfcTemplatedEntityList<IfcAirToAirHeatRecovery> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcAirToAirHeatRecovery.

::Ifc4::IfcAirToAirHeatRecoveryTypeEnum::Value PredefinedType() const
void setPredefinedType(::Ifc4::IfcAirToAirHeatRecoveryTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAirToAirHeatRecovery(IfcEntityInstanceData *e)
IfcAirToAirHeatRecovery(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4::IfcAirToAirHeatRecoveryTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
class IfcAirToAirHeatRecoveryType : public Ifc4::IfcEnergyConversionDeviceType

The energy conversion device type IfcAirToAirHeatRecoveryType defines commonly shared information for occurrences of air-to-air heat recovery devices. The set of shared information may include:

common properties with shared property sets common representations of shape common materials common composition of elements common ports applicable assignment of process types

It is used to define a air-to-air heat recovery device specification (i.e. the specific product information, that is common to all occurrences of that product type). Air-To-Air Heat Recovery Device types may be exchanged without being already assigned to occurrences. Occurrences of IfcAirToAirHeatRecoveryType are represented by instances of IfcAirToAirHeatRecovery.

HISTORY: New entity in IFC2x2

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the HasPropertySets attribute. Refer to the documentation at the supertype IfcEnergyConversionDeviceType and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AirToAirHeatRecoveryTypeCommon

Material Use Definition The material of the IfcAirToAirHeatRecoveryType is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

‘Media’: The primary media material used for heat transfer.

Port Use Definition The distribution ports relating to the IfcAirToAirHeatRecoveryType type are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. Ports are reflected at occurrences of this type using the IfcRelDefinesByObject relationship. Refer to the documentation at IfcAirToAirHeatRecovery for standard port definitions.

Public Functions

::Ifc4::IfcAirToAirHeatRecoveryTypeEnum::Value PredefinedType() const

Defines the type of air to air heat recovery device.

void setPredefinedType(::Ifc4::IfcAirToAirHeatRecoveryTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAirToAirHeatRecoveryType(IfcEntityInstanceData *e)
IfcAirToAirHeatRecoveryType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ApplicableOccurrence, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcPropertySetDefinition>::ptr> v6_HasPropertySets, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcRepresentationMap>::ptr> v7_RepresentationMaps, boost::optional<std::string> v8_Tag, boost::optional<std::string> v9_ElementType, ::Ifc4::IfcAirToAirHeatRecoveryTypeEnum::Value v10_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
struct IfcAirToAirHeatRecoveryTypeEnum

Public Types

enum Value

Defines general types of pumps. The IfcPumpTypeEnum contains the following:

FIXEDPLATECOUNTERFLOWEXCHANGER: Heat exchanger with moving parts and alternate layers of plates, separated and sealed from the exhaust and supply air stream passages with primary air enters at secondary air outlet location and exits at secondary air inlet location. FIXEDPLATECROSSFLOWEXCHANGER: Heat exchanger with moving parts and alternate layers of plates, separated and sealed from the exhaust and supply air stream passages with secondary air flow in the direction perpendicular to primary air flow. FIXEDPLATEPARALLELFLOWEXCHANGER: Heat exchanger with moving parts and alternate layers of plates, separated and sealed from the exhaust and supply air stream passages with primary air enters at secondary air inlet location and exits at secondary air outlet location. ROTARYWHEEL: A heat wheel with a revolving cylinder filled with an air-permeable medium having a large internal surface area. RUNAROUNDCOILLOOP: A typical coil energy recovery loop places extended surface, finned tube water coils in the supply and exhaust airstreams of a building. HEATPIPE: A passive energy recovery device with a heat pipe divided into evaporator and condenser sections. TWINTOWERENTHALPYRECOVERYLOOPS: An air-to-liquid, liquid-to-air enthalpy recovery system with a sorbent liquid circulates continuously between supply and exhaust airstreams, alternately contacting both airstreams directly in contactor towers. THERMOSIPHONSEALEDTUBEHEATEXCHANGERS: Sealed systems that consist of an evaporator, a condenser, interconnecting piping, and an intermediate working fluid that is present in both liquid and vapor phases where the evaporator and the condenser are usually at opposite ends of a bundle of straight, individual thermosiphon tubes and the exhaust and supply ducts are adjacent to each other. THERMOSIPHONCOILTYPEHEATEXCHANGERS: Sealed systems that consist of an evaporator, a condenser, interconnecting piping, and an intermediate working fluid that is present in both liquid and vapor phases where the evaporator and condensor coils are installed independently in the ducts and are interconnected by the working fluid piping. USERDEFINED: User-defined air to air heat recovery type. NOTDEFINED: Undefined air to air heat recovery type.

HISTORY: New enumeration in IFC R2x.

Values:

enumerator IfcAirToAirHeatRecoveryType_FIXEDPLATECOUNTERFLOWEXCHANGER
enumerator IfcAirToAirHeatRecoveryType_FIXEDPLATECROSSFLOWEXCHANGER
enumerator IfcAirToAirHeatRecoveryType_FIXEDPLATEPARALLELFLOWEXCHANGER
enumerator IfcAirToAirHeatRecoveryType_ROTARYWHEEL
enumerator IfcAirToAirHeatRecoveryType_RUNAROUNDCOILLOOP
enumerator IfcAirToAirHeatRecoveryType_HEATPIPE
enumerator IfcAirToAirHeatRecoveryType_TWINTOWERENTHALPYRECOVERYLOOPS
enumerator IfcAirToAirHeatRecoveryType_THERMOSIPHONSEALEDTUBEHEATEXCHANGERS
enumerator IfcAirToAirHeatRecoveryType_THERMOSIPHONCOILTYPEHEATEXCHANGERS
enumerator IfcAirToAirHeatRecoveryType_USERDEFINED
enumerator IfcAirToAirHeatRecoveryType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAlarm : public Ifc4::IfcDistributionControlElement

An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device. Alarms include the provision of break glass buttons and manual pull boxes that are used to activate alarms.

HISTORY New entity in IFC2x4

Type Use Definition IfcAlarm defines the occurrence of any alarm; common information about alarm types is handled by IfcAlarmType. The IfcAlarmType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcAlarmType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcAlarmType has ports or aggregated elements, such objects are reflected at the IfcAlarm occurrence using the IfcRelDefinesByObject relationship.

Property Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Property sets may also be specified at the IfcAlarmType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcAlarmType.HasPropertySets. If both are given, then the properties directly defined at IfcAlarm override the properties defined at IfcAlarmType. Refer to the documentation at the supertype IfcDistributionControlElement and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AlarmPHistory (PSET_PERFORMANCEDRIVEN) Pset_AlarmTypeCommon (PSET_TYPEDRIVENOVERRIDE)

Quantity Use Definition The quantities relating to this entity are defined by IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. The following base quantities are defined and shall be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, may be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement shall be provided.

Qto_AlarmBaseQuantities

Material Use Definition The material of the IfcAlarm is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcAlarmType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Casing: Material from which the casing is constructed.

Port Use Definition The distribution ports relating to the IfcAlarm are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. If the alarm occurrence is defined by IfcAlarmType, then the port occurrences must reflect those defined at the IfcAlarmType using the IfcRelDefinesByObject relationship. Ports are specific to the IfcAlarm PredefinedType as follows indicated by the IfcDistributionPort Name, PredefinedType, and FlowDirection:

Input (SIGNAL, SINK): Receives signal.

Public Types

typedef IfcTemplatedEntityList<IfcAlarm> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcAlarm.

::Ifc4::IfcAlarmTypeEnum::Value PredefinedType() const
void setPredefinedType(::Ifc4::IfcAlarmTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAlarm(IfcEntityInstanceData *e)
IfcAlarm(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4::IfcAlarmTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
class IfcAlarmType : public Ifc4::IfcDistributionControlElementType

The distribution control element type IfcAlarmType defines commonly shared information for occurrences of alarms. The set of shared information may include:

common properties with shared property sets common representations of shape common materials common composition of elements common ports applicable assignment of process types

It is used to define a alarm specification (i.e. the specific product information, that is common to all occurrences of that product type). Alarm types may be exchanged without being already assigned to occurrences. Occurrences of IfcAlarmType are represented by instances of IfcAlarm.

HISTORY: New entity in IFC2x2

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the HasPropertySets attribute. Refer to the documentation at the supertype IfcDistributionControlElementType and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AlarmTypeCommon

Material Use Definition The material of the IfcAlarmType is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

‘Casing’: Material from which the casing is constructed.

Port Use Definition The distribution ports relating to the IfcAlarmType type are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. Ports are reflected at occurrences of this type using the IfcRelDefinesByObject relationship. Refer to the documentation at IfcAlarm for standard port definitions.

Public Types

typedef IfcTemplatedEntityList<IfcAlarmType> list

Public Functions

::Ifc4::IfcAlarmTypeEnum::Value PredefinedType() const

Identifies the predefined types of alarm from which the type required may be set.

void setPredefinedType(::Ifc4::IfcAlarmTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAlarmType(IfcEntityInstanceData *e)
IfcAlarmType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ApplicableOccurrence, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcPropertySetDefinition>::ptr> v6_HasPropertySets, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcRepresentationMap>::ptr> v7_RepresentationMaps, boost::optional<std::string> v8_Tag, boost::optional<std::string> v9_ElementType, ::Ifc4::IfcAlarmTypeEnum::Value v10_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
struct IfcAlarmTypeEnum

Public Types

enum Value

The IfcAlarmTypeEnum defines the range of different types of alarm that can be specified.

HISTORY: New type in IFC 2x2

Enumeration

BELL: An audible alarm. BREAKGLASSBUTTON: An alarm activation mechanism in which a protective glass has to be broken to enable a button to be pressed. LIGHT: A visual alarm. MANUALPULLBOX: An alarm activation mechanism in which activation is achieved by a pulling action. SIREN: An audible alarm. WHISTLE: An audible alarm.

USERDEFINED: User-defined type. NOTDEFINED: Undefined type.

Values:

enumerator IfcAlarmType_BELL
enumerator IfcAlarmType_BREAKGLASSBUTTON
enumerator IfcAlarmType_LIGHT
enumerator IfcAlarmType_MANUALPULLBOX
enumerator IfcAlarmType_SIREN
enumerator IfcAlarmType_WHISTLE
enumerator IfcAlarmType_USERDEFINED
enumerator IfcAlarmType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAmountOfSubstanceMeasure : public IfcUtil::IfcBaseType

Definition from ISO/CD 10303-41:1992: An amount of substance measure is the value for the quantity of a substance when compared with the number of atoms in 0.012kilogram of carbon 12.

Usually measure in mole (mol). Type: REAL

NOTE Corresponding ISO 10303 name: amount_of_substance_measure, please refer to ISO/IS 10303-41 for the final definition of the formal standard.

HISTORY New type in IFC Release 1.5.1.

Public Functions

const IfcParse::type_declaration &declaration() const
IfcAmountOfSubstanceMeasure(IfcEntityInstanceData *e)
IfcAmountOfSubstanceMeasure(double v)
operator double() const

Public Static Functions

const IfcParse::type_declaration &Class()
struct IfcAnalysisModelTypeEnum

Public Types

enum Value

Definition from IAI: This type definition is used to distinguish between different types of structural analysis models. The analysis models are differentiated by their dimensionality.

HISTORY: New type in Release IFC2x Edition 2.

Values:

enumerator IfcAnalysisModelType_IN_PLANE_LOADING_2D
enumerator IfcAnalysisModelType_OUT_PLANE_LOADING_2D
enumerator IfcAnalysisModelType_LOADING_3D
enumerator IfcAnalysisModelType_USERDEFINED
enumerator IfcAnalysisModelType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
struct IfcAnalysisTheoryTypeEnum

Public Types

enum Value

Definition from IAI: This type definition is used to distinguish between different types of structural analysis methods, i.e. first order theory, second order theory (small deformations), third order theory (large deformations) and the full nonlinear theory (geometric nonlinearity together with other nonlinearities, e.g. plasticity).

HISTORY: New type in Release IFC2x Edition 2.

Values:

enumerator IfcAnalysisTheoryType_FIRST_ORDER_THEORY
enumerator IfcAnalysisTheoryType_SECOND_ORDER_THEORY
enumerator IfcAnalysisTheoryType_THIRD_ORDER_THEORY
enumerator IfcAnalysisTheoryType_FULL_NONLINEAR_THEORY
enumerator IfcAnalysisTheoryType_USERDEFINED
enumerator IfcAnalysisTheoryType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAngularVelocityMeasure : public IfcUtil::IfcBaseType

IfcAngularVelocityMeasure is a measure of the velocity of a body measured in terms of angle subtended per unit time. Usually measured in radians/s. Type: REAL

HISTORY New type in IFC Release 2.0.

Public Functions

const IfcParse::type_declaration &declaration() const
IfcAngularVelocityMeasure(IfcEntityInstanceData *e)
IfcAngularVelocityMeasure(double v)
operator double() const

Public Static Functions

const IfcParse::type_declaration &Class()
class IfcAnnotation : public Ifc4::IfcProduct

Definition from IAI: An annotation is a graphical representation within the geometric (and spatial) context of a project, that adds a note or meaning to the objects which constitutes the project model. Annotations include additional line drawings, text, dimensioning, hatching and other forms of graphical notes.

NOTE Additional presentation information (often 2D) such as tag number, hatching, etc., that is directly related to a particular product representation is included within the IfcProductDefinitionShape having various IfcShapeRepresentation’s of the IfcElement (and its subtypes). Only those presentation information, that cannot be directly related to a single product, have to be wrapped within the IfcAnnotation.

If available, the annotation should be related to the spatial context of the project, by containing the annotation within the appropriate level of the building structure (site, building, storey, or space). This is handled by the IfcRelContainedInSpatialStructure relationship.

HISTORY: New entity in Release IFC2x Edition 2.

Use definition

The IfcAnnotation can provide specific 0D, 1D, and 2D geometric items as representation of the annotation, offering annotation point, curves, and surfaces.

‘Annotation point’ is an annotation provided by a point that has additional semantic. The inherited attribute ObjectType should be used to capture the type of point annotation, some predefined values are:

‘Survey’: A survey point has a set of cartesian coordinates determined by its location at point. These coordinates are determined relative to the coordinates of a reference point, which acts as the datum for the survey. The difference in elevation of the survey points enables terrain to be determined.

‘Annotation curve’ is an annotation provided by a curve that has additional semantic. The inherited attribute ObjectType should be used to capture the type of curve annotation, some predefined values are:

‘ContourLine’: A line of constant elevation typically used on geographic maps where the spacing of lines at constant intervals of elevation may be used as an indication of slope.

‘IsoBar’: A line of constant pressure typically used on weather maps or to show pressure gradient in spaces, chambers or externally.

‘IsoLux’: A line of constant illumination typically used to show the distribution of illumination levels and/or daylighting in a space or externally.

‘IsoTherm’: A line of constant temperature typically used to show the distribution and effect of heating or cooling within a space or to show temperature distribution on a geographic map.

‘Annotation surface’ is an annotation provided by a surface that has additional semantic. The inherited attribute ObjectType should be used to capture the type of surface annotation, some predefined values are:

‘SurveyArea’: A surface patch based on survey points.

Geometry Use Definitions

The geometric representation of any IfcAnnotation is given by the IfcProductDefinitionShape and IfcLocalPlacement allowing multiple geometric representations.

Local Placement

The local placement for any IfcAnnotation is defined in its supertype IfcProduct. It is defined by the IfcLocalPlacement, which defines the local coordinate system that is referenced by all geometric representations.

The PlacementRelTo relationship of IfcLocalPlacement shall point (if given) to the local placement of the same IfcSpatialStructureElement, which is used in the ContainedInStructure inverse attribute, or to a spatial structure element at a higher level, referenced by that.

If the relative placement is not used, the absolute placement is defined within the world coordinate system.

Geometric Representations

The standard representation of IfcAnnotation is defined using ‘Annotation2D’, when using 2D geometry, hatching and text, ‘GeometricCurveSet’ when using points and curves, or, when including als surfaces, the ‘GeometricSet’ geometry. Geometric representation items may be styled items by adding the style information.

Annotation2D Representation This representation is used, when the representation of the IfcAnnotation includes specific drafting representation elements. The Annotation may have:

subtypes of IfcPoint, IfcCurve being 2D

directly as Items, or within an IfcGeometricCurveSet

subtypes of IfcAnnotationFillArea for hatches

subtypes of IfcDefinedSymbol for symbols

subtypes of IfcTextLiteral for text

subtypes of IfcDraughtingCallout for dimensions

The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Annotation’

RepresentationType : ‘Annotation2D’

Annotation Curve Representation This representation is used, when the representation of the IfcAnnotation does not includes specific drafting representation elements. The Annotation may have:

subtypes of IfcPoint, IfcCurve being 2D

directly as Items, or within an IfcGeometricCurveSet

The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Annotation’

RepresentationType : ‘GeometricCurveSet’

Annotation Surface Representation This representation is used, when the representation of the IfcAnnotation does includes surfaces. The Annotation may have:

subtypes of IfcPoint, IfcCurve, or IfcSurface

directly as Items, or within an IfcGeometricCurveSet

The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Annotation’

RepresentationType : ‘GeometricSet’

Public Types

typedef IfcTemplatedEntityList<IfcAnnotation> list

Public Functions

IfcTemplatedEntityList<IfcRelContainedInSpatialStructure>::ptr ContainedInStructure() const
const IfcParse::entity &declaration() const
IfcAnnotation(IfcEntityInstanceData *e)
IfcAnnotation(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation)

Public Static Functions

const IfcParse::entity &Class()
class IfcAnnotationFillArea : public Ifc4::IfcGeometricRepresentationItem

Definition from ISO/CD 10303-46:1992: An annotation fill area is a set of curves that may be filled with hatching, colour or tiling. The annotation fill are is described by boundaries which consist of non-intersecting, non-self-intersecting closed curves. These curves form the boundary of planar areas to be filled according to the style for the annotation fill area.

NOTE: A curve that is not surrounded by any other curve is a border between an unfilled area on the outside and a filled area on the inside. Another curve may surround an unfilled area if it is surrounded by another curve whose inside is a filled area.

Figure 300 (from ISO 10303-46) illustrates annotation fill area.

Figure 300 — Annotation fill area

NOTE Corresponding ISO 10303 name: annotation_fill_area. Please refer to ISO/IS 10303-46:1994 for the final definition of the formal standard.

The IfcAnnotationFillArea defines an area by a definite OuterBoundary, that might include InnerBoundaries. The areas defined by the InnerBoundaries are excluded from applying the fill area style.

Informal Proposition:

Any curve that describes an inner boundary shall not intersect with, nor include, another curve defining an inner boundary. The curve defining the outer boundary shall not intersect with any curve defining an inner boundary, nor shall it be surrounded by a curve defining an inner boundary.

HISTORY New entity in IFC2x2.

IFC2x3 CHANGE The two attributes OuterBoundary and InnerBoundaries are added and replace the previous single boundary.

Public Types

typedef IfcTemplatedEntityList<IfcAnnotationFillArea> list

Public Functions

::Ifc4::IfcCurve *OuterBoundary() const

A closed curve that defines the outer boundary of the fill area. The areas defined by the outer boundary (minus potentially defined inner boundaries) is filled by the fill area style.

IFC2x Edition 3 CHANGE The two new attributes OuterBoundary and InnerBoundaries replace the old single attribute Boundaries.

void setOuterBoundary(::Ifc4::IfcCurve *v)
bool hasInnerBoundaries() const

Whether the optional attribute InnerBoundaries is defined for this IfcAnnotationFillArea.

IfcTemplatedEntityList<::Ifc4::IfcCurve>::ptr InnerBoundaries() const

A set of inner curves that define the inner boundaries of the fill area. The areas defined by the inner boundaries are excluded from applying the fill area style.

IFC2x Edition 3 CHANGE The two new attributes OuterBoundary and InnerBoundaries replace the old single attribute Boundaries.

void setInnerBoundaries(IfcTemplatedEntityList<::Ifc4::IfcCurve>::ptr v)
const IfcParse::entity &declaration() const
IfcAnnotationFillArea(IfcEntityInstanceData *e)
IfcAnnotationFillArea(::Ifc4::IfcCurve *v1_OuterBoundary, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcCurve>::ptr> v2_InnerBoundaries)

Public Static Functions

const IfcParse::entity &Class()
class IfcApplication : public IfcUtil::IfcBaseEntity

IfcApplication holds the information about an IFC compliant application developed by an application developer. The IfcApplication utilizes a short identifying name as provided by the application developer.

HISTORY New entity in IFC R1.5.

Public Types

typedef IfcTemplatedEntityList<IfcApplication> list

Public Functions

::Ifc4::IfcOrganization *ApplicationDeveloper() const

Name of the application developer, being requested to be member of the IAI.

void setApplicationDeveloper(::Ifc4::IfcOrganization *v)
std::string Version() const

The version number of this software as specified by the developer of the application.

void setVersion(std::string v)
std::string ApplicationFullName() const

The full name of the application as specified by the application developer.

void setApplicationFullName(std::string v)
std::string ApplicationIdentifier() const

Short identifying name for the application.

void setApplicationIdentifier(std::string v)
const IfcParse::entity &declaration() const
IfcApplication(IfcEntityInstanceData *e)
IfcApplication(::Ifc4::IfcOrganization *v1_ApplicationDeveloper, std::string v2_Version, std::string v3_ApplicationFullName, std::string v4_ApplicationIdentifier)

Public Static Functions

const IfcParse::entity &Class()
class IfcAppliedValue : public IfcUtil::IfcBaseEntity

IfcAppliedValue is an abstract supertype that specifies the common attributes for cost values.

HISTORY: New Entity in IFC2x2. Modifed in IFC2x4 to use IfcDate for date values.

Use definitions The extent of the IfcAppliedValue is determined by the AppliedValue attribute which may be defined either as an IfcMeasureWithUnit or as an IfcMonetaryMeasure or as an IfcRatioMeasure via the IfcAppliedValueSelect type.

Optionally, an IfcAppliedValue may have an applicable date. This is intended to fix the date on which the value became relevant for use. It may be the date on which the value was set in the model or it may be a prior or future date when the value becomes operable.

Similarly, an IfcAppliedValue may have a ‘fixed until’ date. This is intended to fix the date on which the value ceases to be relevant for use.

An instance of IfcAppliedValue may have a unit basis asserted. This is defined as an IfcMeasureWithUnit that determines the extent of the unit value for application purposes. It is assumed that when this attribute is asserted, then the value given to IfcAppliedValue is that for unit quantity. This is not enforced within the IFC schema and thus needs to be controlled within an application.

Applied values may be referenced from a document (such as a price list). The relationship between one or more occurrences of IfcAppliedValue (or its subtypes) is achieved through the use of the IfcExternalReferenceRelationship in which the document provides the IfcExternalReferenceRelationship.RelatingExtReference and the value occurrences are the IfcExternalReferenceRelationship.RelatedResourceObjects.

Subclassed by Ifc4::IfcCostValue

Public Types

typedef IfcTemplatedEntityList<IfcAppliedValue> list

Public Functions

bool hasName() const

Whether the optional attribute Name is defined for this IfcAppliedValue.

std::string Name() const

A name or additional clarification given to a cost value.

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

Whether the optional attribute Description is defined for this IfcAppliedValue.

std::string Description() const

The description that may apply additional information about a cost value.

void setDescription(std::string v)
bool hasAppliedValue() const

Whether the optional attribute AppliedValue is defined for this IfcAppliedValue.

::Ifc4::IfcAppliedValueSelect *AppliedValue() const

The extent or quantity or amount of an applied value.

void setAppliedValue(::Ifc4::IfcAppliedValueSelect *v)
bool hasUnitBasis() const

Whether the optional attribute UnitBasis is defined for this IfcAppliedValue.

::Ifc4::IfcMeasureWithUnit *UnitBasis() const

The number and unit of measure on which the unit cost is based.

Note: As well as the normally expected units of measure such as length, area, volume etc., costs may be based on units of measure which need to be defined e.g. sack, drum, pallet, item etc. Unit costs may be based on quantities greater (or lesser) than a unitary value of the basis measure. For instance, timber may have a unit cost rate per X meters where X > 1; similarly for cable, piping and many other items. The basis number may be either an integer or a real value.

Note: This attribute should be asserted for all circumstances where the cost to be applied is per unit quantity. It may be asserted even for circumstances where an item price is used, in which case the unit cost basis should be by item (or equivalent definition).

void setUnitBasis(::Ifc4::IfcMeasureWithUnit *v)
bool hasApplicableDate() const

Whether the optional attribute ApplicableDate is defined for this IfcAppliedValue.

std::string ApplicableDate() const

The date on or from which an applied value is applicable.

IFC2x4 CHANGE Type changed from IfcDateTimeSelect.

void setApplicableDate(std::string v)
bool hasFixedUntilDate() const

Whether the optional attribute FixedUntilDate is defined for this IfcAppliedValue.

std::string FixedUntilDate() const

The date until which applied value is applicable.

IFC2x4 CHANGE Type changed from IfcDateTimeSelect.

void setFixedUntilDate(std::string v)
bool hasCategory() const

Whether the optional attribute Category is defined for this IfcAppliedValue.

std::string Category() const
void setCategory(std::string v)
bool hasCondition() const

Whether the optional attribute Condition is defined for this IfcAppliedValue.

std::string Condition() const
void setCondition(std::string v)
bool hasArithmeticOperator() const

Whether the optional attribute ArithmeticOperator is defined for this IfcAppliedValue.

::Ifc4::IfcArithmeticOperatorEnum::Value ArithmeticOperator() const
void setArithmeticOperator(::Ifc4::IfcArithmeticOperatorEnum::Value v)
bool hasComponents() const

Whether the optional attribute Components is defined for this IfcAppliedValue.

IfcTemplatedEntityList<::Ifc4::IfcAppliedValue>::ptr Components() const
void setComponents(IfcTemplatedEntityList<::Ifc4::IfcAppliedValue>::ptr v)
IfcTemplatedEntityList<IfcExternalReferenceRelationship>::ptr HasExternalReference() const
const IfcParse::entity &declaration() const
IfcAppliedValue(IfcEntityInstanceData *e)
IfcAppliedValue(boost::optional<std::string> v1_Name, boost::optional<std::string> v2_Description, ::Ifc4::IfcAppliedValueSelect *v3_AppliedValue, ::Ifc4::IfcMeasureWithUnit *v4_UnitBasis, boost::optional<std::string> v5_ApplicableDate, boost::optional<std::string> v6_FixedUntilDate, boost::optional<std::string> v7_Category, boost::optional<std::string> v8_Condition, boost::optional<::Ifc4::IfcArithmeticOperatorEnum::Value> v9_ArithmeticOperator, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcAppliedValue>::ptr> v10_Components)

Public Static Functions

const IfcParse::entity &Class()
class IfcApproval : public IfcUtil::IfcBaseEntity

Definition: An IfcApproval represents information about approval processes such as for a plan, a design, a proposal, or a change order in a construction or facilities management project. IfcApproval is referenced by IfcRelAssociatesApproval in IfcControlExtension schema, and thereby can be related to all subtypes of IfcRoot. An approval may also be given to resource objects using IfcResourceApprovalRelationship

HISTORY New Entity in IFC Release 2.0

IFC2x Edition 4 CHANGE Attributes Identifier and Name made optional, where rule added to require at least one of them being asserted. Inverse attributes ApprovedObjects, ApprovedResources and HasExternalReferences added. Inverse attribute Properties deleted (more general relationship via inverse ApprovedResources to be used instead).

Public Types

typedef IfcTemplatedEntityList<IfcApproval> list

Public Functions

bool hasIdentifier() const

Whether the optional attribute Identifier is defined for this IfcApproval.

std::string Identifier() const

A computer interpretable identifier by which the approval is known.

void setIdentifier(std::string v)
bool hasName() const

Whether the optional attribute Name is defined for this IfcApproval.

std::string Name() const

A human readable name given to an approval.

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

Whether the optional attribute Description is defined for this IfcApproval.

std::string Description() const

A general textual description of a design, work task, plan, etc. that is being approved for.

void setDescription(std::string v)
bool hasTimeOfApproval() const

Whether the optional attribute TimeOfApproval is defined for this IfcApproval.

std::string TimeOfApproval() const

Date and time when the result of the approval process is produced.

IFC2x4 CHANGE Attribute data type changed to IfcDateTime using ISO 8601 representation, renamed from ApprovalDateTime and made OPTIONAL.

void setTimeOfApproval(std::string v)
bool hasStatus() const

Whether the optional attribute Status is defined for this IfcApproval.

std::string Status() const

The result or current status of the approval, e.g. Requested, Processed, Approved, Not Approved.

void setStatus(std::string v)
bool hasLevel() const

Whether the optional attribute Level is defined for this IfcApproval.

std::string Level() const

Level of the approval e.g. Draft v.s. Completed design.

void setLevel(std::string v)
bool hasQualifier() const

Whether the optional attribute Qualifier is defined for this IfcApproval.

std::string Qualifier() const

Textual description of special constraints or conditions for the approval.

void setQualifier(std::string v)
bool hasRequestingApproval() const

Whether the optional attribute RequestingApproval is defined for this IfcApproval.

::Ifc4::IfcActorSelect *RequestingApproval() const

The actor that is acting in the role specified at IfcOrganization or individually at IfcPerson and requesting an approval.

IFC2x4 CHANGE New attribute for approval request replacing IfcApprovalActorRelationship (being deleted).

void setRequestingApproval(::Ifc4::IfcActorSelect *v)
bool hasGivingApproval() const

Whether the optional attribute GivingApproval is defined for this IfcApproval.

::Ifc4::IfcActorSelect *GivingApproval() const

The actor that is acting in the role specified at IfcOrganization or individually at IfcPerson and giving an approval.

IFC2x4 CHANGE New attribute for approval provision replacing IfcApprovalActorRelationship (being deleted).

void setGivingApproval(::Ifc4::IfcActorSelect *v)
IfcTemplatedEntityList<IfcExternalReferenceRelationship>::ptr HasExternalReferences() const
IfcTemplatedEntityList<IfcRelAssociatesApproval>::ptr ApprovedObjects() const
IfcTemplatedEntityList<IfcResourceApprovalRelationship>::ptr ApprovedResources() const
IfcTemplatedEntityList<IfcApprovalRelationship>::ptr IsRelatedWith() const
IfcTemplatedEntityList<IfcApprovalRelationship>::ptr Relates() const
const IfcParse::entity &declaration() const
IfcApproval(IfcEntityInstanceData *e)
IfcApproval(boost::optional<std::string> v1_Identifier, boost::optional<std::string> v2_Name, boost::optional<std::string> v3_Description, boost::optional<std::string> v4_TimeOfApproval, boost::optional<std::string> v5_Status, boost::optional<std::string> v6_Level, boost::optional<std::string> v7_Qualifier, ::Ifc4::IfcActorSelect *v8_RequestingApproval, ::Ifc4::IfcActorSelect *v9_GivingApproval)

Public Static Functions

const IfcParse::entity &Class()
class IfcApprovalRelationship : public Ifc4::IfcResourceLevelRelationship

An IfcApprovalRelationship associates approvals (one relating approval and one or more related approvals), each having different status or level as the approval process or the approved objects evolve.

HISTORY: New entity in Release IFC2x2.

IFC2x4 CHANGE Subtyped from IfcResourceLevelRelationship, order of attributes changed.

Public Types

typedef IfcTemplatedEntityList<IfcApprovalRelationship> list

Public Functions

::Ifc4::IfcApproval *RelatingApproval() const

The approval that other approval is related to.

void setRelatingApproval(::Ifc4::IfcApproval *v)
IfcTemplatedEntityList<::Ifc4::IfcApproval>::ptr RelatedApprovals() const

The approvals that are related to another (relating) approval.IFC2x Edition 4 CHANGE The cardinality of this attribute has been changed to SET.

void setRelatedApprovals(IfcTemplatedEntityList<::Ifc4::IfcApproval>::ptr v)
const IfcParse::entity &declaration() const
IfcApprovalRelationship(IfcEntityInstanceData *e)
IfcApprovalRelationship(boost::optional<std::string> v1_Name, boost::optional<std::string> v2_Description, ::Ifc4::IfcApproval *v3_RelatingApproval, IfcTemplatedEntityList<::Ifc4::IfcApproval>::ptr v4_RelatedApprovals)

Public Static Functions

const IfcParse::entity &Class()
class IfcArbitraryClosedProfileDef : public Ifc4::IfcProfileDef

The closed profile IfcArbitraryClosedProfileDef defines an arbitrary two-dimensional profile for the use within the swept surface geometry, the swept area solid or a sectioned spine. It is given by an outer boundary from which the surface or solid can be constructed.

HISTORY: New entity in IFC 1.5. Entity has been renamed from IfcArbitraryProfileDef in IFC Release 2x.

Informal proposition:

The OuterCurve has to be a closed curve. The OuterCurve shall not intersect.

Figure 307 illustrates the arbitrary closed profile definition. The OuterCurve is defined in the underlying coordinate system. The underlying coordinate system is defined by the swept surface or swept area solid that uses the profile definition. It is the xy plane of either:

IfcSweptSurface.Position IfcSweptAreaSolid.Position

or in case of sectioned spines the xy plane of each list member of IfcSectionedSpine.CrossSectionPositions. The OuterCurve attribute defines a two dimensional closed bounded curve.

Figure 307 — Arbitrary closed profile

Subclassed by Ifc4::IfcArbitraryProfileDefWithVoids

Public Functions

::Ifc4::IfcCurve *OuterCurve() const

Bounded curve, defining the outer boundaries of the arbitrary profile.

void setOuterCurve(::Ifc4::IfcCurve *v)
const IfcParse::entity &declaration() const
IfcArbitraryClosedProfileDef(IfcEntityInstanceData *e)
IfcArbitraryClosedProfileDef(::Ifc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional<std::string> v2_ProfileName, ::Ifc4::IfcCurve *v3_OuterCurve)

Public Static Functions

const IfcParse::entity &Class()
class IfcArbitraryOpenProfileDef : public Ifc4::IfcProfileDef

The open profile IfcArbitraryOpenProfileDef defines an arbitrary two-dimensional open profile for the use within the swept surface geometry. It is given by an open boundary from with the surface can be constructed.

HISTORY New entity in IFC2x.

Informal proposition:

The Curve has to be an open curve.

Figure 308 illustrates the arbitrary open profile definition. The Curve is defined in the underlying coordinate system. The underlying coordinate system is defined by the swept surface that uses the profile definition. It is the xy plane of:

IfcSweptSurface.Position

The Curve attribute defines a two dimensional open bounded curve.

Figure 308 — Arbitrary open profile

Subclassed by Ifc4::IfcCenterLineProfileDef

Public Functions

::Ifc4::IfcBoundedCurve *Curve() const

Open bounded curve defining the profile.

void setCurve(::Ifc4::IfcBoundedCurve *v)
const IfcParse::entity &declaration() const
IfcArbitraryOpenProfileDef(IfcEntityInstanceData *e)
IfcArbitraryOpenProfileDef(::Ifc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional<std::string> v2_ProfileName, ::Ifc4::IfcBoundedCurve *v3_Curve)

Public Static Functions

const IfcParse::entity &Class()
class IfcArbitraryProfileDefWithVoids : public Ifc4::IfcArbitraryClosedProfileDef

The IfcArbitraryProfileDefWithVoids defines an arbitrary closed two-dimensional profile with holes defined for the use for the swept area solid or a sectioned spine. It is given by an outer boundary and inner boundaries from with the solid the can be constructed.

HISTORY New entity in IFC2x.

Informal propositions:

The outer curve and all inner curves shall be closed curves. The outer curve shall enclose all inner curves. No inner curve shall intersect with the outer curve or any other inner curve. No inner curve may enclose another inner curve.

Figure 309 illustrates the arbitrary closed profile definition with voids. The OuterCurve, defined at the supertype IfcArbitraryClosedProfileDef and the inner curves are defined in the same underlying coordinate system. The common underlying coordinate system is defined by the swept area solid that uses the profile definition. It is the xy plane of:

IfcSweptAreaSolid.Position

or in case of sectioned spines the xy plane of each list member of IfcSectionedSpine.CrossSectionPositions. The OuterCurve attribute defines a two dimensional closed bounded curve, the InnerCurves define a set of two dimensional closed bounded curves.

Figure 309 — Arbitrary profile with voids

Public Functions

IfcTemplatedEntityList<::Ifc4::IfcCurve>::ptr InnerCurves() const

Set of bounded curves, defining the inner boundaries of the arbitrary profile.

void setInnerCurves(IfcTemplatedEntityList<::Ifc4::IfcCurve>::ptr v)
const IfcParse::entity &declaration() const
IfcArbitraryProfileDefWithVoids(IfcEntityInstanceData *e)
IfcArbitraryProfileDefWithVoids(::Ifc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional<std::string> v2_ProfileName, ::Ifc4::IfcCurve *v3_OuterCurve, IfcTemplatedEntityList<::Ifc4::IfcCurve>::ptr v4_InnerCurves)

Public Static Functions

const IfcParse::entity &Class()
class IfcArcIndex : public IfcUtil::IfcBaseType

Public Functions

const IfcParse::type_declaration &declaration() const
IfcArcIndex(IfcEntityInstanceData *e)
IfcArcIndex(std::vector<int> v)
operator std::vector<int>() const

Public Static Functions

const IfcParse::type_declaration &Class()
class IfcAreaDensityMeasure : public IfcUtil::IfcBaseType

Public Functions

const IfcParse::type_declaration &declaration() const
IfcAreaDensityMeasure(IfcEntityInstanceData *e)
IfcAreaDensityMeasure(double v)
operator double() const

Public Static Functions

const IfcParse::type_declaration &Class()
class IfcAreaMeasure : public IfcUtil::IfcBaseType

Definition from ISO/CD 10303-41:1992: An area measure is the value of the extent of a surface. Usually measured in square metre (m2). Type: REAL

NOTE Corresponding ISO 10303 name: area_measure, please refer to ISO/IS 10303-41 for the final definition of the formal standard.

HISTORY New type in IFC Release 1.5.1.

Public Functions

const IfcParse::type_declaration &declaration() const
IfcAreaMeasure(IfcEntityInstanceData *e)
IfcAreaMeasure(double v)
operator double() const

Public Static Functions

const IfcParse::type_declaration &Class()
struct IfcArithmeticOperatorEnum

Public Types

enum Value

IfcArithmeticOperatorEnum specifies the form of arithmetical operation implied by the relationship. Enumeration

ADD DIVIDE MULTIPLY SUBTRACT

HISTORY: New enumeration in IFC2x2.

Use definitions There can be only one arithmetic operator for each applied value relationship. This is to enforce arithmetic consistency. Given this consistency, the cardinality of the IfcAppliedValueRelationship.Components attribute is a set of one to many applied values that are components of an applied value.

Values:

enumerator IfcArithmeticOperator_ADD
enumerator IfcArithmeticOperator_DIVIDE
enumerator IfcArithmeticOperator_MULTIPLY
enumerator IfcArithmeticOperator_SUBTRACT

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
struct IfcAssemblyPlaceEnum

Public Types

enum Value

Definition from IAI: Enumeration defining where the assembly is intended to take place, either in a factory or on the building site.

HISTORY New enumeration in Release IFC2x Edition 2.

Enumeration

SITE - this assembly is assembled at site

FACTORY - this assembly is assembled in a factory

Values:

enumerator IfcAssemblyPlace_SITE
enumerator IfcAssemblyPlace_FACTORY
enumerator IfcAssemblyPlace_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAsset : public Ifc4::IfcGroup

An asset is a uniquely identifiable grouping of elements acting as a single entity that has a financial value or that can be operated on as a single unit.

An asset is generally the level of granularity at which maintenance operations are undertaken. An asset is a group that can contain one or more elements. Whilst the financial value of a component or element can be defined, financial value is also defined for accounting purposes at the level of the asset. There are a number of actors that can be associated with an asset, each actor having a role. Actors within the scope of the project are indicated using the IfcRelAssignsToActor relationship in which case roles should be defined through the IfcActorRole class; otherwise principal actors are identified as attributes of the class. In the existence of both, direct attributes take precedence. There are a number of costs that can be associated with an asset, each cost having a role. These are specified through the OriginalValue, CurrentValue, TotalReplacementCost and DepreciatedValue attributes.

HISTORY: New entity in IFC2x. In IFC2x4, all attributes made optional and date values changed to use IfcDate.

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Refer to the documentation at the supertype IfcGroup and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_Asset

Classification Use Definition Classifications may be applied using IfcRelAssociatesClassification where RelatedObjects contains the IfcAsset and RelatingClassification refers to an IfcClassification or IfcClassificationReference.

IfcClassificationReference: The operating function of an asset within an organization may be particularly valuable in situations where one organization provides and maintains core services and another organization adds and maintains terminal services. It can classify who owns and is responsible for the asset. Operating function can be designated through the use of one or more classification references.

Assignment Use Definition The IfcAsset may be assigned to the following entities using relationships as indicated:

IfcActor (IfcRelAssignsToActor): Indicates the actor who owns, uses, or is responsible for the asset (as indicated by role in relationship), if such actor is within the scope of the project. IfcCostItem (IfcRelAssignsToControl): Indicates a cost item encompassing the asset.

The IfcAsset may have assignments of its own using the IfcRelAssignsToGroup relationship where RelatingGroup refers to the IfcAsset and RelatedObjects contains one or more objects of the following types: IfcElement: Physical elements that comprise the asset.

Public Types

typedef IfcTemplatedEntityList<IfcAsset> list

Public Functions

bool hasIdentification() const

Whether the optional attribute Identification is defined for this IfcAsset.

std::string Identification() const

A unique identification assigned to an asset that enables its differentiation from other assets. NOTE: The asset identifier is unique within the asset register. It differs from the globally unique id assigned to the instance of an entity populating a database.

void setIdentification(std::string v)
bool hasOriginalValue() const

Whether the optional attribute OriginalValue is defined for this IfcAsset.

::Ifc4::IfcCostValue *OriginalValue() const

The cost value of the asset at the time of purchase.

void setOriginalValue(::Ifc4::IfcCostValue *v)
bool hasCurrentValue() const

Whether the optional attribute CurrentValue is defined for this IfcAsset.

::Ifc4::IfcCostValue *CurrentValue() const

The current cost value of the asset.

void setCurrentValue(::Ifc4::IfcCostValue *v)
bool hasTotalReplacementCost() const

Whether the optional attribute TotalReplacementCost is defined for this IfcAsset.

::Ifc4::IfcCostValue *TotalReplacementCost() const

The total cost of replacement of the asset.

void setTotalReplacementCost(::Ifc4::IfcCostValue *v)
bool hasOwner() const

Whether the optional attribute Owner is defined for this IfcAsset.

::Ifc4::IfcActorSelect *Owner() const

The name of the person or organization that ‘owns’ the asset.

void setOwner(::Ifc4::IfcActorSelect *v)
bool hasUser() const

Whether the optional attribute User is defined for this IfcAsset.

::Ifc4::IfcActorSelect *User() const

The name of the person or organization that ‘uses’ the asset.

void setUser(::Ifc4::IfcActorSelect *v)
bool hasResponsiblePerson() const

Whether the optional attribute ResponsiblePerson is defined for this IfcAsset.

::Ifc4::IfcPerson *ResponsiblePerson() const

The person designated to be responsible for the asset. NOTE: In some regulations (for example, UK Health and Safety at Work Act, Electricity at Work Regulations), management of assets must have a person identified as being responsible and to whom regulatory, insurance and other organizations communicate. In places where there is not a legal requirement, the responsible person would be the asset manager but would not have a legal status.

void setResponsiblePerson(::Ifc4::IfcPerson *v)
bool hasIncorporationDate() const

Whether the optional attribute IncorporationDate is defined for this IfcAsset.

std::string IncorporationDate() const

The date on which an asset was incorporated into the works, installed, constructed, erected or completed. NOTE: This is the date on which an asset is considered to start depreciating.

IFC2x4 CHANGE Type changed from IfcDateTimeSelect.

void setIncorporationDate(std::string v)
bool hasDepreciatedValue() const

Whether the optional attribute DepreciatedValue is defined for this IfcAsset.

::Ifc4::IfcCostValue *DepreciatedValue() const

The current value of an asset within the accounting rules and procedures of an organization.

void setDepreciatedValue(::Ifc4::IfcCostValue *v)
const IfcParse::entity &declaration() const
IfcAsset(IfcEntityInstanceData *e)
IfcAsset(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, boost::optional<std::string> v6_Identification, ::Ifc4::IfcCostValue *v7_OriginalValue, ::Ifc4::IfcCostValue *v8_CurrentValue, ::Ifc4::IfcCostValue *v9_TotalReplacementCost, ::Ifc4::IfcActorSelect *v10_Owner, ::Ifc4::IfcActorSelect *v11_User, ::Ifc4::IfcPerson *v12_ResponsiblePerson, boost::optional<std::string> v13_IncorporationDate, ::Ifc4::IfcCostValue *v14_DepreciatedValue)

Public Static Functions

const IfcParse::entity &Class()
class IfcAsymmetricIShapeProfileDef : public Ifc4::IfcParameterizedProfileDef

IfcAsymmetricIShapeProfileDef defines a section profile that provides the defining parameters of a singly symmetric I-shaped section. Its parameters and orientation relative to the position coordinate system are according to the following illustration. The centre of the position coordinate system is in the profile’s centre of the bounding box.

The inherited attributes are redefined as:

OverallWidth BottomFlangeWidth FlangeThickness BottomFlangeThickness FilletRadius BottomFlangeFilletRadius

The overall width of the profile is implicitly given by the maximum of the bottom flange width and the top flange width.

IfcAsymmetricIShapeProfileDef can also be used to model rail profiles if the application scenario does not require a full explicit shape model of the rail profile. Alternatively, IfcArbitraryClosedProfileDef can be used to provide the exact shape of rail profiles. Either way, a reference to an external document or library should be provided to further define the profile as described at IfcProfileDef.

HISTORY New entity in Release IFC2x Edition 2.

IFC2x3 CHANGE All profile origins are now in the center of the bounding box. The attribute CentreOfGravityInY has been made OPTIONAL.

IFC2x4 CHANGE Bottom flange is not necessarily wider than top flange. TopFlangeThickness changed from OPTIONAL to mandatory. Type of TopFlangeFilletRadius relaxed to allow for zero radius. Trailing attribute CentreOfGravityInY deleted, use respective property in IfcExtendedProfileProperties instead.

Figure 310 illustrates parameters of the asymmetric I-shaped section definition. The parameterized profile defines its own position coordinate system. The underlying coordinate system is defined by the swept area solid that uses the profile definition. It is the xy plane of:

IfcSweptAreaSolid.Position

By using offsets of the position location, the parameterized profile can be positioned centric (using x,y offsets = 0.), or at any position relative to the profile. The parameterized profile is defined by a set of parameter attributes. In the illustrated example, the ‘CentreOfGravityInY’ property in IfcExtendedProfileProperties, if provided, is negative.

Figure 310 — Assymetric I-shape profile

Public Functions

double BottomFlangeWidth() const
void setBottomFlangeWidth(double v)
double OverallDepth() const
void setOverallDepth(double v)
double WebThickness() const
void setWebThickness(double v)
double BottomFlangeThickness() const
void setBottomFlangeThickness(double v)
bool hasBottomFlangeFilletRadius() const

Whether the optional attribute BottomFlangeFilletRadius is defined for this IfcAsymmetricIShapeProfileDef.

double BottomFlangeFilletRadius() const
void setBottomFlangeFilletRadius(double v)
double TopFlangeWidth() const

Extent of the top flange, defined parallel to the x axis of the position coordinate system.

void setTopFlangeWidth(double v)
bool hasTopFlangeThickness() const

Whether the optional attribute TopFlangeThickness is defined for this IfcAsymmetricIShapeProfileDef.

double TopFlangeThickness() const

Flange thickness of the top flange of the I-shape.

void setTopFlangeThickness(double v)
bool hasTopFlangeFilletRadius() const

Whether the optional attribute TopFlangeFilletRadius is defined for this IfcAsymmetricIShapeProfileDef.

double TopFlangeFilletRadius() const

The fillet between the web and the top flange of the I-shape.

void setTopFlangeFilletRadius(double v)
bool hasBottomFlangeEdgeRadius() const

Whether the optional attribute BottomFlangeEdgeRadius is defined for this IfcAsymmetricIShapeProfileDef.

double BottomFlangeEdgeRadius() const
void setBottomFlangeEdgeRadius(double v)
bool hasBottomFlangeSlope() const

Whether the optional attribute BottomFlangeSlope is defined for this IfcAsymmetricIShapeProfileDef.

double BottomFlangeSlope() const
void setBottomFlangeSlope(double v)
bool hasTopFlangeEdgeRadius() const

Whether the optional attribute TopFlangeEdgeRadius is defined for this IfcAsymmetricIShapeProfileDef.

double TopFlangeEdgeRadius() const
void setTopFlangeEdgeRadius(double v)
bool hasTopFlangeSlope() const

Whether the optional attribute TopFlangeSlope is defined for this IfcAsymmetricIShapeProfileDef.

double TopFlangeSlope() const
void setTopFlangeSlope(double v)
const IfcParse::entity &declaration() const
IfcAsymmetricIShapeProfileDef(IfcEntityInstanceData *e)
IfcAsymmetricIShapeProfileDef(::Ifc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional<std::string> v2_ProfileName, ::Ifc4::IfcAxis2Placement2D *v3_Position, double v4_BottomFlangeWidth, double v5_OverallDepth, double v6_WebThickness, double v7_BottomFlangeThickness, boost::optional<double> v8_BottomFlangeFilletRadius, double v9_TopFlangeWidth, boost::optional<double> v10_TopFlangeThickness, boost::optional<double> v11_TopFlangeFilletRadius, boost::optional<double> v12_BottomFlangeEdgeRadius, boost::optional<double> v13_BottomFlangeSlope, boost::optional<double> v14_TopFlangeEdgeRadius, boost::optional<double> v15_TopFlangeSlope)

Public Static Functions

const IfcParse::entity &Class()
class IfcAudioVisualAppliance : public Ifc4::IfcFlowTerminal

An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video. Audio-visual appliances may be fixed in place or may be able to be moved from one space to another. They may require an electrical supply that may be supplied either by an electrical circuit or provided from a local battery source. Audio-visual appliances may be connected to data circuits including specialist circuits for audio visual purposes only.

HISTORY New entity in IFC2x4

Type Use Definition IfcAudioVisualAppliance defines the occurrence of any audio visual appliance; common information about audio visual appliance types is handled by IfcAudioVisualApplianceType. The IfcAudioVisualApplianceType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcAudioVisualApplianceType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcAudioVisualApplianceType has ports or aggregated elements, such objects are reflected at the IfcAudioVisualAppliance occurrence using the IfcRelDefinesByObject relationship.

Property Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Property sets may also be specified at the IfcAudioVisualApplianceType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcAudioVisualApplianceType.HasPropertySets. If both are given, then the properties directly defined at IfcAudioVisualAppliance override the properties defined at IfcAudioVisualApplianceType. Refer to the documentation at the supertype IfcFlowTerminal and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: (All Types)

Pset_AudioVisualAppliancePHistory (PSET_PERFORMANCEDRIVEN) Pset_AudioVisualApplianceTypeCommon (PSET_TYPEDRIVENOVERRIDE)

AMPLIFIER

Pset_AudioVisualApplianceTypeAmplifier (PSET_TYPEDRIVENOVERRIDE)

CAMERA

Pset_AudioVisualApplianceTypeCamera (PSET_TYPEDRIVENOVERRIDE)

DISPLAY

Pset_AudioVisualApplianceTypeDisplay (PSET_TYPEDRIVENOVERRIDE)

PLAYER

Pset_AudioVisualApplianceTypePlayer (PSET_TYPEDRIVENOVERRIDE)

PROJECTOR

Pset_AudioVisualApplianceTypeProjector (PSET_TYPEDRIVENOVERRIDE)

RECEIVER

Pset_AudioVisualApplianceTypeReceiver (PSET_TYPEDRIVENOVERRIDE)

SPEAKER

Pset_AudioVisualApplianceTypeSpeaker (PSET_TYPEDRIVENOVERRIDE)

TUNER

Pset_AudioVisualApplianceTypeTuner (PSET_TYPEDRIVENOVERRIDE)

Quantity Use Definition The quantities relating to this entity are defined by IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. The following base quantities are defined and shall be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, may be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement shall be provided.

Qto_AudioVisualApplianceBaseQuantities

Material Use Definition The material of the IfcAudioVisualAppliance is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcAudioVisualApplianceType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Casing: Material from which the casing is constructed.

Composition Use Definition The IfcAudioVisualAppliance may be aggregated into components using IfcRelAggregates where RelatingObject refers to the enclosing IfcAudioVisualAppliance and RelatedObjects contains one or more components. Aggregation use is defined for the following predefined types:

May contain IfcAudioVisualAppliance components.

Port Use Definition The distribution ports relating to the IfcAudioVisualAppliance are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. If the audio visual appliance occurrence is defined by IfcAudioVisualApplianceType, then the port occurrences must reflect those defined at the IfcAudioVisualApplianceType using the IfcRelDefinesByObject relationship. Ports are specific to the IfcAudioVisualAppliance PredefinedType as follows indicated by the IfcDistributionPort Name, PredefinedType, and FlowDirection:

AMPLIFIER

Power (ELECTRICAL, SINK): Receives electrical power. Input (AUDIOVISUAL, SINK): Input audio. Speakers (ELECTROACCOUSTIC, SOURCE): Audio speaker(s), which may be aggregated for separate speaker channels.

CAMERA

Power (ELECTRICAL, SINK): Receives electrical power. Control (CONTROL, SINK): Receives control signal. Network (DATA, SOURCE): Network access. Output (AUDIOVISUAL, SOURCE): Captured video.

DISPLAY

Power (ELECTRICAL, SINK): Receives electrical power. Control (CONTROL, SINK): Receives control signal. Input#1 (AUDIOVISUAL, SINK): Input audio/video source. Input#2 (AUDIOVISUAL, SINK): Input audio/video source. Input#3 (AUDIOVISUAL, SINK): Input audio/video source. Input#4 (AUDIOVISUAL, SINK): Input audio/video source. Input#5 (AUDIOVISUAL, SINK): Input audio/video source. Input#6 (AUDIOVISUAL, SINK): Input audio/video source. Input#7 (AUDIOVISUAL, SINK): Input audio/video source. Input#8 (AUDIOVISUAL, SINK): Input audio/video source.

MICROPHONE

Power (ELECTRICAL, SINK): Receives electrical power. Output (AUDIOVISUAL, SOURCE): Captured audio.

PLAYER

Power (ELECTRICAL, SINK): Receives electrical power. Control (CONTROL, SINK): Receives control signal. Output (AUDIOVISUAL, SOURCE): Rendered media content.

PROJECTOR

Power (ELECTRICAL, SINK): Receives electrical power. Control (CONTROL, SINK): Receives control signal. Input (AUDIOVISUAL, SOURCE): Input audio/video source.

RECEIVER

Power (ELECTRICAL, SINK): Receives electrical power. Control (CONTROL, SINK): Receives control signal. Network (DATA, SOURCE): Network access. Input#1 (AUDIOVISUAL, SINK): Input audio/video source. Input#2 (AUDIOVISUAL, SINK): Input audio/video source. Input#3 (AUDIOVISUAL, SINK): Input audio/video source. Input#4 (AUDIOVISUAL, SINK): Input audio/video source. Input#5 (AUDIOVISUAL, SINK): Input audio/video source. Input#6 (AUDIOVISUAL, SINK): Input audio/video source. Input#7 (AUDIOVISUAL, SINK): Input audio/video source. Input#8 (AUDIOVISUAL, SINK): Input audio/video source. Output#1 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#2 (AUDIOVISUAL, SOURCE): Output audio/video zone. Speakers#1 (ELECTROACCOUSTIC, SOURCE): Audio speaker(s), which may be aggregated for separate speaker channels. Speakers#2 (ELECTROACCOUSTIC, SOURCE): Audio speaker(s), which may be aggregated for separate speaker channels.

SPEAKER

Input (ELECTROACCOUSTIC, SINK): Amplified audio input.

SWITCHER

Power (ELECTRICAL, SINK): Receives electrical power. Control (CONTROL, SINK): Receives control signal. Network (DATA, SOURCE): Network access. Input#1 (AUDIOVISUAL, SINK): Input audio/video source. Input#2 (AUDIOVISUAL, SINK): Input audio/video source. Input#3 (AUDIOVISUAL, SINK): Input audio/video source. Input#4 (AUDIOVISUAL, SINK): Input audio/video source. Input#5 (AUDIOVISUAL, SINK): Input audio/video source. Input#6 (AUDIOVISUAL, SINK): Input audio/video source. Input#7 (AUDIOVISUAL, SINK): Input audio/video source. Input#8 (AUDIOVISUAL, SINK): Input audio/video source. Output#1 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#2 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#3 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#4 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#5 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#6 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#7 (AUDIOVISUAL, SOURCE): Output audio/video zone. Output#8 (AUDIOVISUAL, SOURCE): Output audio/video zone.

TELEPHONE

Power (ELECTRICAL, SINK): Receives electrical power. Phone (TELEPHONE, SINK): Telecommunications network.

TUNER

Power (ELECTRICAL, SINK): Receives electrical power. Control (CONTROL, SINK): Receives control signal. Input (TV, SINK): Receives modulated data feed such as satellite, cable, or over-the-air. Output (AUDIOVISUAL, SOURCE): Rendered media content.

Public Types

typedef IfcTemplatedEntityList<IfcAudioVisualAppliance> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcAudioVisualAppliance.

::Ifc4::IfcAudioVisualApplianceTypeEnum::Value PredefinedType() const
void setPredefinedType(::Ifc4::IfcAudioVisualApplianceTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAudioVisualAppliance(IfcEntityInstanceData *e)
IfcAudioVisualAppliance(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4::IfcAudioVisualApplianceTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
class IfcAudioVisualApplianceType : public Ifc4::IfcFlowTerminalType

The flow terminal type IfcAudioVisualApplianceType defines commonly shared information for occurrences of audio-visual appliances. The set of shared information may include:

common properties with shared property sets common representations of shape common materials common composition of elements common ports applicable assignment of process types

It is used to define a audio-visual appliance specification (i.e. the specific product information, that is common to all occurrences of that product type). Audio-Visual Appliance types may be exchanged without being already assigned to occurrences. Occurrences of IfcAudioVisualApplianceType are represented by instances of IfcAudioVisualAppliance.

HISTORY: New entity in IFC2x4

Property Set Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the HasPropertySets attribute. Refer to the documentation at the supertype IfcFlowTerminalType and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: Pset_AudioVisualApplianceTypeCommon Pset_ElectricalDeviceCommon

The following property set definitions are applicable to this entity according to the PredefinedType attribute:

Pset_AudioVisualApplianceTypeAmplifier (AMPLIFIER) Pset_AudioVisualApplianceTypeCamera (CAMERA) Pset_AudioVisualApplianceTypeDisplay (DISPLAY) Pset_AudioVisualApplianceTypePlayer (PLAYER) Pset_AudioVisualApplianceTypeProjector (PROJECTOR) Pset_AudioVisualApplianceTypeReceiver (RECEIVER) Pset_AudioVisualApplianceTypeSpeaker (SPEAKER) Pset_AudioVisualApplianceTypeTuner (TUNER)

Material Use Definition The material of the IfcAudioVisualApplianceType is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

‘Casing’: Material from which the casing is constructed.

Composition Use Definition The IfcAudioVisualApplianceType may be aggregated into components using IfcRelAggregates where RelatingObject refers to the enclosing IfcAudioVisualApplianceType and RelatedObjects contains one or more components. Components are reflected at occurrences of this type using the IfcRelDefinesByObject relationship. Aggregation use is defined for the following predefined types:

(All Types): May contain IfcAudioVisualAppliance components.

Port Use Definition The distribution ports relating to the IfcAudioVisualApplianceType type are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. Ports are reflected at occurrences of this type using the IfcRelDefinesByObject relationship. Refer to the documentation at IfcAudioVisualAppliance for standard port definitions.

Public Functions

::Ifc4::IfcAudioVisualApplianceTypeEnum::Value PredefinedType() const

Identifies the predefined types of audio-visual appliance from which the type required may be set.

void setPredefinedType(::Ifc4::IfcAudioVisualApplianceTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcAudioVisualApplianceType(IfcEntityInstanceData *e)
IfcAudioVisualApplianceType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ApplicableOccurrence, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcPropertySetDefinition>::ptr> v6_HasPropertySets, boost::optional<IfcTemplatedEntityList<::Ifc4::IfcRepresentationMap>::ptr> v7_RepresentationMaps, boost::optional<std::string> v8_Tag, boost::optional<std::string> v9_ElementType, ::Ifc4::IfcAudioVisualApplianceTypeEnum::Value v10_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()
struct IfcAudioVisualApplianceTypeEnum

Public Types

enum Value

Defines the range of different types of audio-video devices that can be specified. HISTORY: New enumeration in IFC2x4

AMPLIFIER: A device that receives an audio signal and amplifies it to play through speakers. CAMERA: A device that records images, either as a still photograph or as moving images known as videos or movies. Note that a camera may operate with light from the visible spectrum or from other parts of the electromagnetic spectrum such as infrared or ultraviolet. DISPLAY: An electronic device that represents information in visual form such as a flat-panel display or television. MICROPHONE: An acoustic-to-electric transducer or sensor that converts sound into an electrical signal. Microphones types in use include electromagnetic induction (dynamic microphones), capacitance change (condenser microphones) or piezoelectric generation to produce the signal from mechanical vibration. PLAYER: A device that plays audio and/or video content directly or to another device, having fixed or removable storage media. PROJECTOR: An apparatus for projecting a picture on a screen. Whether the device is an overhead, slide projector, or a film projector, it is usually referred to as simply a projector. RECEIVER: A device that receives audio and/or video signals, switches sources, and amplifies signals to play through speakers. SPEAKER: A loudspeaker, speaker, or speaker system is an electroacoustical transducer that converts an electrical signal to sound. SWITCHER: A device that receives audio and/or video signals, switches sources, and transmits signals to downstream devices. TELEPHONE: A telecommunications device that is used to transmit and receive sound, and optionally video. TUNER: An electronic receiver that detects, demodulates, and amplifies transmitted signals.

Values:

enumerator IfcAudioVisualApplianceType_AMPLIFIER
enumerator IfcAudioVisualApplianceType_CAMERA
enumerator IfcAudioVisualApplianceType_DISPLAY
enumerator IfcAudioVisualApplianceType_MICROPHONE
enumerator IfcAudioVisualApplianceType_PLAYER
enumerator IfcAudioVisualApplianceType_PROJECTOR
enumerator IfcAudioVisualApplianceType_RECEIVER
enumerator IfcAudioVisualApplianceType_SPEAKER
enumerator IfcAudioVisualApplianceType_SWITCHER
enumerator IfcAudioVisualApplianceType_TELEPHONE
enumerator IfcAudioVisualApplianceType_TUNER
enumerator IfcAudioVisualApplianceType_USERDEFINED
enumerator IfcAudioVisualApplianceType_NOTDEFINED

Public Static Functions

IFC_PARSE_API const char *ToString(Value v)
IFC_PARSE_API Value FromString(const std::string &s)
class IfcAxis1Placement : public Ifc4::IfcPlacement

Definition from ISO/CD 10303-42:1992: The direction and location in three dimensional space of a single axis. An axis1_placement is defined in terms of a locating point (inherited from placement supertype) and an axis direction: this is either the direction of axis or defaults to (0.0,0.0,1.0). The actual direction for the axis placement is given by the derived attribute z (Z).

NOTE Corresponding ISO 10303 name: axis1_placement, please refer to ISO/IS 10303-42:1994, p. 28 for the final definition of the formal standard.

HISTORY New entity in IFC Release 1.5

Figure 274 illustrates the definition of the IfcAxis1Placement within the three-dimensional coordinate system.

Figure 274 — Axis1 placement

Public Types

typedef IfcTemplatedEntityList<IfcAxis1Placement> list

Public Functions

bool hasAxis() const

Whether the optional attribute Axis is defined for this IfcAxis1Placement.

::Ifc4::IfcDirection *Axis() const

The direction of the local Z axis.

void setAxis(::Ifc4::IfcDirection *v)
const IfcParse::entity &declaration() const
IfcAxis1Placement(IfcEntityInstanceData *e)
IfcAxis1Placement(::Ifc4::IfcCartesianPoint *v1_Location, ::Ifc4::IfcDirection *v2_Axis)

Public Static Functions

const IfcParse::entity &Class()
class IfcAxis2Placement2D : public Ifc4::IfcPlacement

Definition from ISO/CD 10303-42:1992: The location and orientation in two dimensional space of two mutually perpendicular axes. An axis2_placement_2d is defined in terms of a point, (inherited from the placement supertype), and an axis. It can be used to locate and originate an object in two dimensional space and to define a placement coordinate system. The class includes a point which forms the origin of the placement coordinate system. A direction vector is required to complete the definition of the placement coordinate system. The reference direction defines the placement X axis direction, the placement Y axis is derived from this.

If the RefDirection attribute is not given, the placement defaults to P[1] (x-axis) as [1.,0.] and P[2] (y-axis) as [0.,1.].

NOTE Corresponding ISO 10303 name: axis2_placement_2d, please refer to ISO/IS 10303-42:1994, p. 28 for the final definition of the formal standard.

HISTORY New entity in IFC Release 1.5.

Figure 275 illustrates the definition of the IfcAxis2Placement2D within the two-dimensional coordinate system.

Figure 275 — Axis2 placement 2D

Public Types

typedef IfcTemplatedEntityList<IfcAxis2Placement2D> list

Public Functions

bool hasRefDirection() const

Whether the optional attribute RefDirection is defined for this IfcAxis2Placement2D.

::Ifc4::IfcDirection *RefDirection() const

The direction used to determine the direction of the local X axis. If a value is omited that it defaults to [1.0, 0.0.].

void setRefDirection(::Ifc4::IfcDirection *v)
const IfcParse::entity &declaration() const
IfcAxis2Placement2D(IfcEntityInstanceData *e)
IfcAxis2Placement2D(::Ifc4::IfcCartesianPoint *v1_Location, ::Ifc4::IfcDirection *v2_RefDirection)

Public Static Functions

const IfcParse::entity &Class()
class IfcAxis2Placement3D : public Ifc4::IfcPlacement

Definition from ISO/CD 10303-42:1992: The location and orientation in three dimensional space of three mutually perpendicular axes. An axis2_placement_3D is defined in terms of a point (inherited from placement supertype) and two (ideally orthogonal) axes. It can be used to locate and originate an object in three dimensional space and to define a placement coordinate system. The entity includes a point which forms the origin of the placement coordinate system. Two direction vectors are required to complete the definition of the placement coordinate system. The axis is the placement Z axis direction and the ref_direction is an approximation to the placement X axis direction.

If the attribute values for Axis and RefDirection are not given, the placement defaults to P[1] (x-axis) as [1.,0.,0.], P[2] (y-axis) as [0.,1.,0.] and P[3] (z-axis) as [0.,0.,1.].

NOTE Corresponding ISO 10303 name: axis2_placement_3d, please refer to ISO/IS 10303-42:1994 for the final definition of the formal standard. The WR5 is added to ensure that either both attributes Axis and RefDirection are given, or both are omitted.

HISTORY New entity in IFC Release 1.5.

Figure 276 illustrates the definition of the IfcAxis2Placement3D within the three-dimensional coordinate system.

Figure 276 — Axis2 placement 3D

Public Types

typedef IfcTemplatedEntityList<IfcAxis2Placement3D> list

Public Functions

bool hasAxis() const

Whether the optional attribute Axis is defined for this IfcAxis2Placement3D.

::Ifc4::IfcDirection *Axis() const

The exact direction of the local Z Axis.

void setAxis(::Ifc4::IfcDirection *v)
bool hasRefDirection() const

Whether the optional attribute RefDirection is defined for this IfcAxis2Placement3D.

::Ifc4::IfcDirection *RefDirection() const

The direction used to determine the direction of the local X Axis. If necessary an adjustment is made to maintain orthogonality to the Axis direction. If Axis and/or RefDirection is omitted, these directions are taken from the geometric coordinate system.

void setRefDirection(::Ifc4::IfcDirection *v)
const IfcParse::entity &declaration() const
IfcAxis2Placement3D(IfcEntityInstanceData *e)
IfcAxis2Placement3D(::Ifc4::IfcCartesianPoint *v1_Location, ::Ifc4::IfcDirection *v2_Axis, ::Ifc4::IfcDirection *v3_RefDirection)

Public Static Functions

const IfcParse::entity &Class()
class IfcBeam : public Ifc4::IfcBuildingElement

Definition from ISO 6707-1:1989: Structural member designed to carry loads between or beyond points of support, usually narrow in relation to its length and horizontal or nearly so.

An IfcBeam is a horizontal, or nearly horizontal, structural member that is capable of withstanding load primarily by resisting bending. It represents such a member from an architectural point of view. It is not required to be load bearing.

NOTE The representation of a beam in a structural analysis model is provided by IfcStructuralCurveMember being part of an IfcStructuralAnalysisModel.

NOTE For any longitudial structural member, not constrained to be predominately horizontal nor vertical, or where this semantic information is irrelevant, the entity IfcMember should be used.

The IFC specification provides two entities for beam occurrences:

IfcBeamStandardCase used for all occurrences of beams, that have a profile defined that is swept along a directrix. The profile might be changed uniformly by a taper definition along the directrix. The profile parameter and its cardinal point of insertion can be fully described by the IfcMaterialProfileSetUsage. These beams are always represented geometricly by an ‘Axis’ and a ‘SweptSolid’ or ‘AdvancedSweptSolid’ shape representation (or by a ‘Clipping’ geometry based on the swept solid), if a 3D geometric representation is assigned. In addition they have to have a corresponding IfcMaterialProfileSetUsage assigned. NOTE View definitions and implementer agreements may further constrain the applicable geometry types, for example, by excluding tapering from an IfcBeamStandardCase implementation.

IfcBeam used for all other occurrences of beams, particularly for beams with changing profile sizes along the extrusion, or beams defined by non-linear extrusion, or beams having only ‘Brep’, or ‘SurfaceModel’ geometry.

HISTORY New entity in IFC Release 1.0

Type Use Definition IfcBeam defines the occuurence of any beam, common information about beam types (or styles) is handled by IfcBeamType. The IfcBeamType (if present) may establish the commontype name, usage (or predefined) type, common material layer set, common set of properties and common shape representations (using IfcRepresentationMap). The IfcBeamType is attached using the IfcRelDefinedByType.RelatingType objectified relationship and is accessible by the inverse IsTypedBy attribute. If no IfcBeamType is attached (i.e. if only occurrence information is given) the PredefinedType should be provided. If set to .USERDEFINED. a user defined value can be provided by the ObjectType attribute. Material Use Definition The material of the IfcBeam is defined by the IfcMaterialProfileSet or as fallback by IfcMaterial and attached by the IfcRelAssociatesMaterial.RelatingMaterial. It is accessible by the inverse HasAssociations relationship. Note It is illegal to assign an IfcMaterialProfileSetUsage to an IfcBeam. Only the subtype IfcBeamStandardCase supports this concept. Material information can also be given at the IfcBeamType, defining the common attribute data for all occurrences of the same type. It is then accessible by the inverse IsTypedBy relationship pointing to IfcBeamType.HasAssociations and via IfcRelAssociatesMaterial.RelatingMaterial to IfcMaterialProfileSet or IfcMaterial. If both are given, then the material directly assigned to IfcBeam overrides the material assigned to IfcBeamType. Property Set Use Definition The property sets relating to the IfcBeam are defined by the IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following property set definitions specific to the IfcBeam are part of this IFC release:

Pset_BeamCommon: common property set for all beam occurrences

Property sets can also be given at the IfcBeamType, defining the common property data for all occurrences of the same type. It is then accessible by the inverse IsTypedBy relationship pointing to IfcBeamType.HasPropertySets. If both are given, then the properties directly assigned to IfcBeam overrides the properties assigned to IfcBeamType. Quantity Use Definition The quantities relating to the IfcBeam are defined by the IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following base quantities are defined and should be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities can be defined being subjected to local standard of measurement with another string value assigned to MethodOfMeasurement. Quanties shall be never assigned to the IfcBeamType.

Qto_BeamBaseQuantities: base quantities for all beam occurrences.

Containment Use Definition The IfcBeam, as any subtype of IfcBuildingElement, may participate in two different containment relationships. The first (and in most implementation scenarios mandatory) relationship is the hierachical spatial containment, the second (optional) relationship is the aggregation within an element assembly.

The IfcBeam is places within the project spatial hierarchy using the objectified relationship IfcRelContainedInSpatialStructure, refering to it by its inverse attribute SELF\IfcElement.ContainedInStructure. Subtypes of IfcSpatialStructureElement are valid spatial containers, with IfcBuildingStorey being the default container. The IfcBeam may be aggregated into an element assembly using the objectified relationship IfcRelAggregates, refering to it by its inverse attribute SELF\IfcObjectDefinition.Decomposes. Any subtype of IfcElement can be an element assembly, with IfcElementAssembly as a special focus subtype. In this case it should not be additionally contained in the project spatial hierarchy, i.e. SELF\IfcElement.ContainedInStructure should be NIL.

Geometry Use Definition The geometric representation of IfcBeam is given by the IfcProductDefinitionShape, allowing multiple geometric representations. Included are: Local Placement The local placement for IfcBeam is defined in its supertype IfcProduct. It is defined by the IfcLocalPlacement, which defines the local coordinate system that is referenced by all geometric representations.

The PlacementRelTo relationship of IfcLocalPlacement shall point (if given) to the local placement of the same IfcSpatialStructureElement, which is used in the ContainedInStructure inverse attribute, or to a spatial structure element at a higher level, referenced by that.

Exception: If the IfcBeam is part of an assembly, the PlacementRelTo relationship of IfcLocalPlacement shall point to the local placement of the container element, e.g. IfcElementAssembly,

If the relative placement is not used, the absolute placement is defined within the world coordinate system.

Geometric Representation Currently, the ‘Axis’, ‘Body’, and ‘Box’ representations are supported. The ‘Box’ representation includes the representation type ‘BoundingBox’ and is explained at IfcBuildingElement. Axis Representation The axis geometric representation of IfcBeam is defined using the ‘Axis’ representation.

RepresentationIdentifier : ‘Axis’ RepresentationType : ‘Curve2D’, ‘Curve3D’

The ‘Axis’ can be used to represent the system axis and length of a beam that may extent the body length. Body Representation The body representation of IfcBeam can be represented using the representation types ‘SweptSolid’,