From ccd91c0ff0aa4477b379fc1cfb8b847d95fcaf34 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 6 Jan 2026 11:27:29 +0100 Subject: [PATCH] No more messing around with specific sfinae as<>() in Select implementations --- .../ifcopenshell/express/templates.py | 5 +- src/ifcparse/Ifc2x3.h | 1635 +++++---- src/ifcparse/Ifc4.h | 3020 +++++++++------- src/ifcparse/Ifc4x1.h | 3025 +++++++++------- src/ifcparse/Ifc4x2.h | 3025 +++++++++------- src/ifcparse/Ifc4x3.h | 3020 +++++++++------- src/ifcparse/Ifc4x3_add1.h | 3020 +++++++++------- src/ifcparse/Ifc4x3_add2.h | 3040 +++++++++------- src/ifcparse/Ifc4x3_rc1.h | 3105 +++++++++------- src/ifcparse/Ifc4x3_rc2.h | 3115 ++++++++++------- src/ifcparse/Ifc4x3_rc3.h | 3070 +++++++++------- src/ifcparse/Ifc4x3_rc4.h | 3070 +++++++++------- src/ifcparse/Ifc4x3_tc1.h | 3020 +++++++++------- 13 files changed, 21102 insertions(+), 14068 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/express/templates.py b/src/ifcopenshell-python/ifcopenshell/express/templates.py index e39816ef30..b51c78eb7d 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/templates.py +++ b/src/ifcopenshell-python/ifcopenshell/express/templates.py @@ -152,8 +152,9 @@ public: }; """ -select_list_item = """ template, int> = 0> - %(item_name)s as() const { return express::Base::as<%(item_name)s>(); } +select_list_item = """ // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // %(item_name)s as() const { return express::Base::as<%(item_name)s>(); } """ select_cast_function = """ %(name)s(const %(item_name)s& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc2x3.h b/src/ifcparse/Ifc2x3.h index af2dabb2f6..2cf022f4f0 100644 --- a/src/ifcparse/Ifc2x3.h +++ b/src/ifcparse/Ifc2x3.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,14 +110,17 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcRatioMeasure& c) : express::Select(c) {}; @@ -134,11 +140,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -167,17 +175,21 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcBooleanOperand(const IfcSolidModel& c) : express::Select(c) {}; @@ -202,8 +214,9 @@ public: explicit IfcCharacterStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcTextStyleForDefinedFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyleForDefinedFont as() const { return express::Base::as(); } IfcCharacterStyleSelect(const IfcTextStyleForDefinedFont& c) : express::Select(c) {}; @@ -215,11 +228,13 @@ public: explicit IfcClassificationNotationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassificationNotation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationNotation as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationNotationSelect(const IfcClassificationNotation& c) : express::Select(c) {}; @@ -237,11 +252,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -257,11 +274,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -275,11 +294,13 @@ public: explicit IfcConditionCriterionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } IfcConditionCriterionSelect(const IfcLabel& c) : express::Select(c) {}; @@ -298,11 +319,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -320,17 +343,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontSelect& c) : express::Select(c) {}; @@ -355,11 +382,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -377,11 +406,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcPreDefinedCurveFont& c) : express::Select(c) {}; @@ -395,14 +426,17 @@ public: explicit IfcDateTimeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCalendarDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCalendarDate as() const { return express::Base::as(); } - template, int> = 0> - IfcLocalTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLocalTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDateAndTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateAndTime as() const { return express::Base::as(); } IfcDateTimeSelect(const IfcCalendarDate& c) : express::Select(c) {}; @@ -422,11 +456,13 @@ public: explicit IfcDefinedSymbolSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPreDefinedSymbol as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedSymbol as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedSymbol as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSymbol as() const { return express::Base::as(); } IfcDefinedSymbolSelect(const IfcPreDefinedSymbol& c) : express::Select(c) {}; @@ -513,209 +549,277 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcVolumetricFlowRateMeasure& c) : express::Select(c) {}; @@ -868,11 +972,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentReference& c) : express::Select(c) {}; @@ -886,14 +992,17 @@ public: explicit IfcDraughtingCalloutElement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAnnotationCurveOccurrence as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAnnotationCurveOccurrence as() const { return express::Base::as(); } - template, int> = 0> - IfcAnnotationTextOccurrence as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAnnotationTextOccurrence as() const { return express::Base::as(); } - template, int> = 0> - IfcAnnotationSymbolOccurrence as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAnnotationSymbolOccurrence as() const { return express::Base::as(); } IfcDraughtingCalloutElement(const IfcAnnotationCurveOccurrence& c) : express::Select(c) {}; @@ -915,8 +1024,9 @@ public: explicit IfcFillAreaStyleTileShapeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFillAreaStyleTileSymbolWithStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTileSymbolWithStyle as() const { return express::Base::as(); } IfcFillAreaStyleTileShapeSelect(const IfcFillAreaStyleTileSymbolWithStyle& c) : express::Select(c) {}; @@ -933,23 +1043,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcFillAreaStyleHatching& c) : express::Select(c) {}; @@ -975,14 +1091,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcPoint& c) : express::Select(c) {}; @@ -1000,11 +1119,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOneDirectionRepeatFactor as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOneDirectionRepeatFactor as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcOneDirectionRepeatFactor& c) : express::Select(c) {}; @@ -1024,11 +1145,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentationItem& c) : express::Select(c) {}; @@ -1051,11 +1174,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryReference& c) : express::Select(c) {}; @@ -1090,11 +1215,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1133,20 +1260,25 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterial as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterial as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialLayerSetUsage as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialLayerSetUsage as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialLayerSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialLayerSet as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialLayer as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialLayer as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterial& c) : express::Select(c) {}; @@ -1174,71 +1306,93 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } IfcMeasureValue(const IfcVolumeMeasure& c) : express::Select(c) {}; @@ -1303,32 +1457,41 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDateTimeSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTimeSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCalendarDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCalendarDate as() const { return express::Base::as(); } - template, int> = 0> - IfcLocalTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLocalTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDateAndTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateAndTime as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcCostValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCostValue as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcDateTimeSelect& c) : express::Select(c) {}; @@ -1358,44 +1521,57 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterial as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterial as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcDateAndTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateAndTime as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcCalendarDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCalendarDate as() const { return express::Base::as(); } - template, int> = 0> - IfcLocalTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLocalTime as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialLayer as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialLayer as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcMaterial& c) : express::Select(c) {}; @@ -1431,11 +1607,13 @@ public: explicit IfcOrientationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } IfcOrientationSelect(const IfcPlaneAngleMeasure& c) : express::Select(c) {}; @@ -1455,11 +1633,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -1480,23 +1660,29 @@ public: explicit IfcPresentationStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcNullStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNullStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSymbolStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSymbolStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcTextStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyle as() const { return express::Base::as(); } IfcPresentationStyleSelect(const IfcNullStyle& c) : express::Select(c) {}; @@ -1528,11 +1714,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -1564,26 +1752,33 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } IfcSimpleValue(const IfcInteger& c) : express::Select(c) {}; @@ -1618,23 +1813,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcRatioMeasure& c) : express::Select(c) {}; @@ -1665,11 +1866,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -1691,11 +1894,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcStructuralItem& c) : express::Select(c) {}; @@ -1717,14 +1922,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcSurface& c) : express::Select(c) {}; @@ -1748,20 +1956,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcSurfaceStyleShading& c) : express::Select(c) {}; @@ -1787,14 +2000,17 @@ public: explicit IfcSymbolStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcSymbolStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1816,11 +2032,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcPreDefinedTextFont& c) : express::Select(c) {}; @@ -1842,11 +2060,13 @@ public: explicit IfcTextStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcTextStyleWithBoxCharacteristics as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyleWithBoxCharacteristics as() const { return express::Base::as(); } - template, int> = 0> - IfcTextStyleTextModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyleTextModel as() const { return express::Base::as(); } IfcTextStyleSelect(const IfcTextStyleWithBoxCharacteristics& c) : express::Select(c) {}; @@ -1864,11 +2084,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -1894,14 +2116,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -1926,305 +2151,405 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } IfcValue(const IfcMeasureValue& c) : express::Select(c) {}; @@ -2441,11 +2766,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4.h b/src/ifcparse/Ifc4.h index 40f50fc3ea..2777c76f66 100644 --- a/src/ifcparse/Ifc4.h +++ b/src/ifcparse/Ifc4.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,14 +1089,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -977,11 +1122,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -999,11 +1146,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1023,11 +1172,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1114,218 +1265,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1484,11 +1706,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1507,23 +1731,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1549,14 +1779,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1579,11 +1812,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1599,11 +1834,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1623,11 +1860,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1650,11 +1889,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1689,11 +1930,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1732,14 +1975,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1763,74 +2009,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1897,356 +2166,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2492,11 +2878,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2512,11 +2900,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2532,11 +2922,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2552,32 +2944,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2611,11 +3012,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2636,20 +3039,25 @@ public: explicit IfcPresentationStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcNullStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNullStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcTextStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyle as() const { return express::Base::as(); } IfcPresentationStyleSelect(const IfcCurveStyle& c) : express::Select(c) {}; @@ -2678,11 +3086,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2696,11 +3106,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2722,11 +3134,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2740,11 +3154,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2760,53 +3176,69 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2856,11 +3288,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2876,11 +3310,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2894,11 +3330,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2922,11 +3360,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -2958,47 +3398,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3047,23 +3501,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3091,11 +3551,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3120,11 +3582,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3147,11 +3611,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3173,11 +3639,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3200,11 +3668,13 @@ public: explicit IfcStyleAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPresentationStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcPresentationStyleAssignment as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyleAssignment as() const { return express::Base::as(); } IfcStyleAssignmentSelect(const IfcPresentationStyle& c) : express::Select(c) {}; @@ -3226,14 +3696,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3257,20 +3730,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3296,11 +3774,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3315,11 +3795,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3335,11 +3817,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3357,11 +3841,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3387,14 +3873,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3419,338 +3908,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -3989,11 +4589,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4009,11 +4611,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x1.h b/src/ifcparse/Ifc4x1.h index fb18909d85..8869cab688 100644 --- a/src/ifcparse/Ifc4x1.h +++ b/src/ifcparse/Ifc4x1.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,14 +1089,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -977,11 +1122,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -999,11 +1146,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1023,11 +1172,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1114,218 +1265,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1484,11 +1706,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1507,23 +1731,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1549,14 +1779,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1579,11 +1812,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1599,11 +1834,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1623,11 +1860,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1650,11 +1889,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1689,11 +1930,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1732,14 +1975,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1763,74 +2009,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1897,356 +2166,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2492,11 +2878,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2512,11 +2900,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2532,11 +2922,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2552,32 +2944,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2611,11 +3012,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2636,20 +3039,25 @@ public: explicit IfcPresentationStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcNullStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNullStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcTextStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyle as() const { return express::Base::as(); } IfcPresentationStyleSelect(const IfcCurveStyle& c) : express::Select(c) {}; @@ -2678,11 +3086,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2696,11 +3106,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2722,11 +3134,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2740,11 +3154,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2760,56 +3176,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2861,11 +3294,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2881,11 +3316,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2899,11 +3336,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2927,11 +3366,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -2963,47 +3404,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3052,23 +3507,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3096,11 +3557,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3125,11 +3588,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3152,11 +3617,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3178,11 +3645,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3205,11 +3674,13 @@ public: explicit IfcStyleAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPresentationStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcPresentationStyleAssignment as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyleAssignment as() const { return express::Base::as(); } IfcStyleAssignmentSelect(const IfcPresentationStyle& c) : express::Select(c) {}; @@ -3231,14 +3702,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3262,20 +3736,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3301,11 +3780,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3320,11 +3801,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3340,11 +3823,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3362,11 +3847,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3392,14 +3879,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3424,338 +3914,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -3994,11 +4595,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4014,11 +4617,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x2.h b/src/ifcparse/Ifc4x2.h index ba021e1456..df02c913a9 100644 --- a/src/ifcparse/Ifc4x2.h +++ b/src/ifcparse/Ifc4x2.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,14 +1089,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -977,11 +1122,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -999,11 +1146,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1023,11 +1172,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1114,218 +1265,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1484,11 +1706,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1507,23 +1731,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1549,14 +1779,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1579,11 +1812,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1599,11 +1834,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1623,11 +1860,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1650,11 +1889,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1689,11 +1930,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1732,14 +1975,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1763,74 +2009,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1897,356 +2166,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2492,11 +2878,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2512,11 +2900,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2532,11 +2922,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2552,32 +2944,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2611,11 +3012,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2636,20 +3039,25 @@ public: explicit IfcPresentationStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcNullStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNullStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcTextStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyle as() const { return express::Base::as(); } IfcPresentationStyleSelect(const IfcCurveStyle& c) : express::Select(c) {}; @@ -2678,11 +3086,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2696,11 +3106,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2722,11 +3134,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2740,11 +3154,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2760,56 +3176,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2861,11 +3294,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2881,11 +3316,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2899,11 +3336,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2927,11 +3366,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -2963,47 +3404,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3052,23 +3507,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3096,11 +3557,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3125,11 +3588,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3152,11 +3617,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3178,11 +3645,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3205,11 +3674,13 @@ public: explicit IfcStyleAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPresentationStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcPresentationStyleAssignment as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyleAssignment as() const { return express::Base::as(); } IfcStyleAssignmentSelect(const IfcPresentationStyle& c) : express::Select(c) {}; @@ -3231,14 +3702,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3262,20 +3736,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3301,11 +3780,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3320,11 +3801,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3340,11 +3823,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3362,11 +3847,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3392,14 +3879,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3424,338 +3914,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -3994,11 +4595,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4014,11 +4617,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3.h b/src/ifcparse/Ifc4x3.h index 093d0e1ea8..34bd9e6979 100644 --- a/src/ifcparse/Ifc4x3.h +++ b/src/ifcparse/Ifc4x3.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,11 +1089,13 @@ public: explicit IfcCurveMeasureSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcCurveMeasureSelect(const IfcNonNegativeLengthMeasure& c) : express::Select(c) {}; @@ -965,14 +1109,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -995,11 +1142,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -1017,11 +1166,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1041,11 +1192,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1132,218 +1285,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1502,11 +1726,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1525,23 +1751,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1567,14 +1799,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1597,11 +1832,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1617,11 +1854,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1635,11 +1874,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1659,11 +1900,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1686,11 +1929,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1725,11 +1970,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1768,14 +2015,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1799,74 +2049,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1933,356 +2206,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2528,11 +2918,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2548,11 +2940,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2568,11 +2962,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2588,32 +2984,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2647,11 +3052,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2674,11 +3081,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2692,11 +3101,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2718,11 +3129,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2736,11 +3149,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2756,56 +3171,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2857,11 +3289,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2877,11 +3311,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2895,11 +3331,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2923,11 +3361,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -2959,47 +3399,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3048,23 +3502,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3092,11 +3552,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3121,11 +3583,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3139,11 +3603,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcGroup as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGroup as() const { return express::Base::as(); } - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcGroup& c) : express::Select(c) {}; @@ -3166,11 +3632,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3192,11 +3660,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3218,14 +3688,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3249,20 +3722,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3288,11 +3766,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3307,11 +3787,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3327,11 +3809,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3349,11 +3833,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3379,14 +3865,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3411,338 +3900,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -3981,11 +4581,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4001,11 +4603,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3_add1.h b/src/ifcparse/Ifc4x3_add1.h index 13df907f6b..77e1f72851 100644 --- a/src/ifcparse/Ifc4x3_add1.h +++ b/src/ifcparse/Ifc4x3_add1.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,11 +1089,13 @@ public: explicit IfcCurveMeasureSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcCurveMeasureSelect(const IfcNonNegativeLengthMeasure& c) : express::Select(c) {}; @@ -965,14 +1109,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -995,11 +1142,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -1017,11 +1166,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1041,11 +1192,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1132,218 +1285,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1502,11 +1726,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1525,23 +1751,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1567,14 +1799,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1597,11 +1832,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1617,11 +1854,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1635,11 +1874,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1659,11 +1900,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1686,11 +1929,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1725,11 +1970,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1768,14 +2015,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1799,74 +2049,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1933,356 +2206,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2528,11 +2918,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2548,11 +2940,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2568,11 +2962,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2588,32 +2984,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2647,11 +3052,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2674,11 +3081,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2692,11 +3101,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2718,11 +3129,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2736,11 +3149,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2756,56 +3171,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2857,11 +3289,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2877,11 +3311,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2895,11 +3331,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2923,11 +3361,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -2959,47 +3399,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3048,23 +3502,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3092,11 +3552,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3121,11 +3583,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3139,11 +3603,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcGroup as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGroup as() const { return express::Base::as(); } - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcGroup& c) : express::Select(c) {}; @@ -3166,11 +3632,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3192,11 +3660,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3218,14 +3688,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3249,20 +3722,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3288,11 +3766,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3307,11 +3787,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3327,11 +3809,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3349,11 +3833,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3379,14 +3865,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3411,338 +3900,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -3981,11 +4581,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4001,11 +4603,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3_add2.h b/src/ifcparse/Ifc4x3_add2.h index 38d66535f1..4c837966cf 100644 --- a/src/ifcparse/Ifc4x3_add2.h +++ b/src/ifcparse/Ifc4x3_add2.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,350 +110,465 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } - template, int> = 0> - IfcURIReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcURIReference as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -694,11 +812,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -714,11 +834,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -747,20 +869,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -787,11 +914,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -817,11 +946,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -839,11 +970,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -859,11 +992,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -879,11 +1014,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -902,11 +1039,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -924,17 +1063,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -952,11 +1095,13 @@ public: explicit IfcCurveMeasureSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcCurveMeasureSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -970,14 +1115,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -1000,11 +1148,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -1022,11 +1172,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1046,11 +1198,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1137,218 +1291,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1507,11 +1732,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1530,23 +1757,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1572,14 +1805,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1602,11 +1838,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1622,11 +1860,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1640,11 +1880,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1664,11 +1906,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1691,11 +1935,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1730,11 +1976,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1773,14 +2021,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1804,74 +2055,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1938,359 +2212,477 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } - template, int> = 0> - IfcURIReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcURIReference as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2538,11 +2930,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2558,11 +2952,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2578,11 +2974,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2598,32 +2996,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2657,11 +3064,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2684,11 +3093,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2702,11 +3113,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2728,11 +3141,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2746,11 +3161,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2766,56 +3183,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2867,11 +3301,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2887,11 +3323,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2905,11 +3343,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2933,11 +3373,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -2969,50 +3411,65 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } - template, int> = 0> - IfcURIReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcURIReference as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3063,23 +3520,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3107,11 +3570,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3136,11 +3601,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3154,11 +3621,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcGroup as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGroup as() const { return express::Base::as(); } - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcGroup& c) : express::Select(c) {}; @@ -3181,11 +3650,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3207,11 +3678,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3233,14 +3706,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3264,20 +3740,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3303,11 +3784,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3322,11 +3805,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3342,11 +3827,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3364,11 +3851,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3394,14 +3883,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3426,341 +3918,453 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } - template, int> = 0> - IfcURIReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcURIReference as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -4001,11 +4605,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4021,11 +4627,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3_rc1.h b/src/ifcparse/Ifc4x3_rc1.h index 450786072d..2d8a64f9fa 100644 --- a/src/ifcparse/Ifc4x3_rc1.h +++ b/src/ifcparse/Ifc4x3_rc1.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,14 +1089,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -977,11 +1122,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -999,11 +1146,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1023,11 +1172,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1114,218 +1265,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1484,11 +1706,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1502,20 +1726,25 @@ public: explicit IfcFacilityPartTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBridgePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBridgePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcMarinePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMarinePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRailwayPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRailwayPartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRoadPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRoadPartTypeEnum as() const { return express::Base::as(); } IfcFacilityPartTypeSelect(const IfcBridgePartTypeEnum& c) : express::Select(c) {}; @@ -1540,23 +1769,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1582,14 +1817,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1612,11 +1850,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1632,11 +1872,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1650,14 +1892,17 @@ public: explicit IfcImpactProtectionDeviceTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } IfcImpactProtectionDeviceTypeSelect(const IfcImpactProtectionDeviceTypeEnum& c) : express::Select(c) {}; @@ -1673,11 +1918,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1697,11 +1944,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1724,11 +1973,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1763,11 +2014,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1781,11 +2034,13 @@ public: explicit IfcLinearAxisSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearAxisWithInclination as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearAxisWithInclination as() const { return express::Base::as(); } IfcLinearAxisSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1824,14 +2079,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1855,74 +2113,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1989,356 +2270,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2584,11 +2982,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2604,11 +3004,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2624,11 +3026,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2644,32 +3048,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2703,11 +3116,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2728,20 +3143,25 @@ public: explicit IfcPresentationStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcNullStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNullStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcTextStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyle as() const { return express::Base::as(); } IfcPresentationStyleSelect(const IfcCurveStyle& c) : express::Select(c) {}; @@ -2770,11 +3190,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2788,11 +3210,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2814,11 +3238,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2832,11 +3258,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2852,56 +3280,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2953,11 +3398,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2973,11 +3420,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2991,11 +3440,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -3019,11 +3470,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3055,47 +3508,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3144,23 +3611,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3188,11 +3661,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3217,11 +3692,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3235,11 +3712,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSystem as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcProduct& c) : express::Select(c) {}; @@ -3262,11 +3741,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3288,11 +3769,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3315,11 +3798,13 @@ public: explicit IfcStyleAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPresentationStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcPresentationStyleAssignment as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyleAssignment as() const { return express::Base::as(); } IfcStyleAssignmentSelect(const IfcPresentationStyle& c) : express::Select(c) {}; @@ -3341,14 +3826,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3372,20 +3860,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3411,11 +3904,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3430,11 +3925,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3450,11 +3947,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3468,11 +3967,13 @@ public: explicit IfcTransportElementTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } IfcTransportElementTypeSelect(const IfcTransportElementFixedTypeEnum& c) : express::Select(c) {}; @@ -3490,11 +3991,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3520,14 +4023,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3552,338 +4058,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -4122,11 +4739,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4142,11 +4761,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3_rc2.h b/src/ifcparse/Ifc4x3_rc2.h index 99128b16ac..d9a34925da 100644 --- a/src/ifcparse/Ifc4x3_rc2.h +++ b/src/ifcparse/Ifc4x3_rc2.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,11 +1089,13 @@ public: explicit IfcCurveMeasureSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcCurveMeasureSelect(const IfcNonNegativeLengthMeasure& c) : express::Select(c) {}; @@ -965,14 +1109,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -995,11 +1142,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -1017,11 +1166,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1041,11 +1192,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1132,218 +1285,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1502,11 +1726,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1520,20 +1746,25 @@ public: explicit IfcFacilityPartTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBridgePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBridgePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcMarinePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMarinePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRailwayPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRailwayPartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRoadPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRoadPartTypeEnum as() const { return express::Base::as(); } IfcFacilityPartTypeSelect(const IfcBridgePartTypeEnum& c) : express::Select(c) {}; @@ -1558,23 +1789,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1600,14 +1837,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1630,11 +1870,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1650,11 +1892,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1668,14 +1912,17 @@ public: explicit IfcImpactProtectionDeviceTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } IfcImpactProtectionDeviceTypeSelect(const IfcImpactProtectionDeviceTypeEnum& c) : express::Select(c) {}; @@ -1691,11 +1938,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1715,11 +1964,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1742,11 +1993,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1781,11 +2034,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1799,11 +2054,13 @@ public: explicit IfcLinearAxisSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearAxisWithInclination as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearAxisWithInclination as() const { return express::Base::as(); } IfcLinearAxisSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1842,14 +2099,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1873,74 +2133,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -2007,356 +2290,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2602,11 +3002,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2622,11 +3024,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2642,11 +3046,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2662,32 +3068,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2721,11 +3136,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2746,20 +3163,25 @@ public: explicit IfcPresentationStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcNullStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNullStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcTextStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTextStyle as() const { return express::Base::as(); } IfcPresentationStyleSelect(const IfcCurveStyle& c) : express::Select(c) {}; @@ -2788,11 +3210,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2806,11 +3230,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2832,11 +3258,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2850,11 +3278,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2870,56 +3300,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2971,11 +3418,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2991,11 +3440,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3009,11 +3460,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -3037,11 +3490,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3073,47 +3528,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3162,23 +3631,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3206,11 +3681,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3235,11 +3712,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3253,11 +3732,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSystem as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcProduct& c) : express::Select(c) {}; @@ -3280,11 +3761,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3306,11 +3789,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3333,11 +3818,13 @@ public: explicit IfcStyleAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPresentationStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcPresentationStyleAssignment as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPresentationStyleAssignment as() const { return express::Base::as(); } IfcStyleAssignmentSelect(const IfcPresentationStyle& c) : express::Select(c) {}; @@ -3359,14 +3846,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3390,20 +3880,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3429,11 +3924,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3448,11 +3945,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3468,11 +3967,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3486,11 +3987,13 @@ public: explicit IfcTransportElementTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } IfcTransportElementTypeSelect(const IfcTransportElementFixedTypeEnum& c) : express::Select(c) {}; @@ -3508,11 +4011,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3538,14 +4043,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3570,338 +4078,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -4140,11 +4759,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4160,11 +4781,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3_rc3.h b/src/ifcparse/Ifc4x3_rc3.h index f72b3be5c1..bde46b8e4f 100644 --- a/src/ifcparse/Ifc4x3_rc3.h +++ b/src/ifcparse/Ifc4x3_rc3.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,11 +1089,13 @@ public: explicit IfcCurveMeasureSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcCurveMeasureSelect(const IfcNonNegativeLengthMeasure& c) : express::Select(c) {}; @@ -965,14 +1109,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -995,11 +1142,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -1017,11 +1166,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1041,11 +1192,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1132,218 +1285,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1502,11 +1726,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1520,20 +1746,25 @@ public: explicit IfcFacilityPartTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBridgePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBridgePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcMarinePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMarinePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRailwayPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRailwayPartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRoadPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRoadPartTypeEnum as() const { return express::Base::as(); } IfcFacilityPartTypeSelect(const IfcBridgePartTypeEnum& c) : express::Select(c) {}; @@ -1558,23 +1789,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1600,14 +1837,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1630,11 +1870,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1650,11 +1892,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1668,14 +1912,17 @@ public: explicit IfcImpactProtectionDeviceTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } IfcImpactProtectionDeviceTypeSelect(const IfcImpactProtectionDeviceTypeEnum& c) : express::Select(c) {}; @@ -1691,11 +1938,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1715,11 +1964,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1742,11 +1993,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1781,11 +2034,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1824,14 +2079,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1855,74 +2113,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1989,356 +2270,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2584,11 +2982,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2604,11 +3004,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2624,11 +3026,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2644,32 +3048,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2703,11 +3116,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2730,11 +3145,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2748,11 +3165,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2774,11 +3193,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2792,11 +3213,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2812,56 +3235,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2913,11 +3353,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2933,11 +3375,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2951,11 +3395,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2979,11 +3425,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3015,47 +3463,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3104,23 +3566,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3148,11 +3616,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3177,11 +3647,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3195,11 +3667,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcGroup as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGroup as() const { return express::Base::as(); } - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcGroup& c) : express::Select(c) {}; @@ -3222,11 +3696,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3248,11 +3724,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3274,14 +3752,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3305,20 +3786,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3344,11 +3830,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3363,11 +3851,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3383,11 +3873,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3401,11 +3893,13 @@ public: explicit IfcTransportElementTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } IfcTransportElementTypeSelect(const IfcTransportElementFixedTypeEnum& c) : express::Select(c) {}; @@ -3423,11 +3917,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3453,14 +3949,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3485,338 +3984,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -4055,11 +4665,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4075,11 +4687,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3_rc4.h b/src/ifcparse/Ifc4x3_rc4.h index 4c7600a374..fb4368929d 100644 --- a/src/ifcparse/Ifc4x3_rc4.h +++ b/src/ifcparse/Ifc4x3_rc4.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,11 +1089,13 @@ public: explicit IfcCurveMeasureSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcCurveMeasureSelect(const IfcNonNegativeLengthMeasure& c) : express::Select(c) {}; @@ -965,14 +1109,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -995,11 +1142,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -1017,11 +1166,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1041,11 +1192,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1132,218 +1285,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1502,11 +1726,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1520,20 +1746,25 @@ public: explicit IfcFacilityPartTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBridgePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBridgePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFacilityPartCommonTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcMarinePartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMarinePartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRailwayPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRailwayPartTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcRoadPartTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRoadPartTypeEnum as() const { return express::Base::as(); } IfcFacilityPartTypeSelect(const IfcBridgePartTypeEnum& c) : express::Select(c) {}; @@ -1558,23 +1789,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1600,14 +1837,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1630,11 +1870,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1650,11 +1892,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1668,14 +1912,17 @@ public: explicit IfcImpactProtectionDeviceTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcImpactProtectionDeviceTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationDamperTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVibrationIsolatorTypeEnum as() const { return express::Base::as(); } IfcImpactProtectionDeviceTypeSelect(const IfcImpactProtectionDeviceTypeEnum& c) : express::Select(c) {}; @@ -1691,11 +1938,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1715,11 +1964,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1742,11 +1993,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1781,11 +2034,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1824,14 +2079,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1855,74 +2113,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1989,356 +2270,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2584,11 +2982,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2604,11 +3004,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2624,11 +3026,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2644,32 +3048,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2703,11 +3116,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2730,11 +3145,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2748,11 +3165,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2774,11 +3193,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2792,11 +3213,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2812,56 +3235,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2913,11 +3353,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2933,11 +3375,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2951,11 +3395,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2979,11 +3425,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3015,47 +3463,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3104,23 +3566,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3148,11 +3616,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3177,11 +3647,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3195,11 +3667,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcGroup as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGroup as() const { return express::Base::as(); } - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcGroup& c) : express::Select(c) {}; @@ -3222,11 +3696,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3248,11 +3724,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3274,14 +3752,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3305,20 +3786,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3344,11 +3830,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3363,11 +3851,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3383,11 +3873,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3401,11 +3893,13 @@ public: explicit IfcTransportElementTypeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementFixedTypeEnum as() const { return express::Base::as(); } - template, int> = 0> - IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTransportElementNonFixedTypeEnum as() const { return express::Base::as(); } IfcTransportElementTypeSelect(const IfcTransportElementFixedTypeEnum& c) : express::Select(c) {}; @@ -3423,11 +3917,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3453,14 +3949,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3485,338 +3984,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -4055,11 +4665,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4075,11 +4687,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; diff --git a/src/ifcparse/Ifc4x3_tc1.h b/src/ifcparse/Ifc4x3_tc1.h index 9392cedd1e..f42ffd7d0f 100644 --- a/src/ifcparse/Ifc4x3_tc1.h +++ b/src/ifcparse/Ifc4x3_tc1.h @@ -71,14 +71,17 @@ public: explicit IfcActorSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } IfcActorSelect(const IfcOrganization& c) : express::Select(c) {}; @@ -107,347 +110,461 @@ public: explicit IfcAppliedValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcAppliedValueSelect(const IfcMeasureWithUnit& c) : express::Select(c) {}; @@ -689,11 +806,13 @@ public: explicit IfcAxis2Placement(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAxis2Placement2D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement2D as() const { return express::Base::as(); } - template, int> = 0> - IfcAxis2Placement3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAxis2Placement3D as() const { return express::Base::as(); } IfcAxis2Placement(const IfcAxis2Placement2D& c) : express::Select(c) {}; @@ -709,11 +828,13 @@ public: explicit IfcBendingParameterSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } IfcBendingParameterSelect(const IfcLengthMeasure& c) : express::Select(c) {}; @@ -742,20 +863,25 @@ public: explicit IfcBooleanOperand(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } - template, int> = 0> - IfcHalfSpaceSolid as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHalfSpaceSolid as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } - template, int> = 0> - IfcTessellatedFaceSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTessellatedFaceSet as() const { return express::Base::as(); } IfcBooleanOperand(const IfcBooleanResult& c) : express::Select(c) {}; @@ -782,11 +908,13 @@ public: explicit IfcClassificationReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationReferenceSelect(const IfcClassification& c) : express::Select(c) {}; @@ -812,11 +940,13 @@ public: explicit IfcClassificationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClassification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassification as() const { return express::Base::as(); } - template, int> = 0> - IfcClassificationReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClassificationReference as() const { return express::Base::as(); } IfcClassificationSelect(const IfcClassification& c) : express::Select(c) {}; @@ -834,11 +964,13 @@ public: explicit IfcColour(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } IfcColour(const IfcColourSpecification& c) : express::Select(c) {}; @@ -854,11 +986,13 @@ public: explicit IfcColourOrFactor(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColourRgb as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourRgb as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } IfcColourOrFactor(const IfcColourRgb& c) : express::Select(c) {}; @@ -874,11 +1008,13 @@ public: explicit IfcCoordinateReferenceSystemSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCoordinateReferenceSystem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCoordinateReferenceSystem as() const { return express::Base::as(); } - template, int> = 0> - IfcGeometricRepresentationContext as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGeometricRepresentationContext as() const { return express::Base::as(); } IfcCoordinateReferenceSystemSelect(const IfcCoordinateReferenceSystem& c) : express::Select(c) {}; @@ -897,11 +1033,13 @@ public: explicit IfcCsgSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBooleanResult as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBooleanResult as() const { return express::Base::as(); } - template, int> = 0> - IfcCsgPrimitive3D as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCsgPrimitive3D as() const { return express::Base::as(); } IfcCsgSelect(const IfcBooleanResult& c) : express::Select(c) {}; @@ -919,17 +1057,21 @@ public: explicit IfcCurveFontOrScaledCurveFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontAndScaling as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFontSelect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFontSelect as() const { return express::Base::as(); } - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveFontOrScaledCurveFontSelect(const IfcCurveStyleFontAndScaling& c) : express::Select(c) {}; @@ -947,11 +1089,13 @@ public: explicit IfcCurveMeasureSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcCurveMeasureSelect(const IfcNonNegativeLengthMeasure& c) : express::Select(c) {}; @@ -965,14 +1109,17 @@ public: explicit IfcCurveOnSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCompositeCurveOnSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompositeCurveOnSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcPcurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPcurve as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceCurve as() const { return express::Base::as(); } IfcCurveOnSurface(const IfcCompositeCurveOnSurface& c) : express::Select(c) {}; @@ -995,11 +1142,13 @@ public: explicit IfcCurveOrEdgeCurve(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoundedCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoundedCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcEdgeCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEdgeCurve as() const { return express::Base::as(); } IfcCurveOrEdgeCurve(const IfcBoundedCurve& c) : express::Select(c) {}; @@ -1017,11 +1166,13 @@ public: explicit IfcCurveStyleFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurveStyleFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurveStyleFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedCurveFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedCurveFont as() const { return express::Base::as(); } IfcCurveStyleFontSelect(const IfcCurveStyleFont& c) : express::Select(c) {}; @@ -1041,11 +1192,13 @@ public: explicit IfcDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcObjectDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcObjectDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyDefinition as() const { return express::Base::as(); } IfcDefinitionSelect(const IfcObjectDefinition& c) : express::Select(c) {}; @@ -1132,218 +1285,289 @@ public: explicit IfcDerivedMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcDerivedMeasureValue(const IfcAbsorbedDoseMeasure& c) : express::Select(c) {}; @@ -1502,11 +1726,13 @@ public: explicit IfcDocumentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDocumentInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcDocumentReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDocumentReference as() const { return express::Base::as(); } IfcDocumentSelect(const IfcDocumentInformation& c) : express::Select(c) {}; @@ -1525,23 +1751,29 @@ public: explicit IfcFillStyleSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColour as() const { return express::Base::as(); } - template, int> = 0> - IfcColourSpecification as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcColourSpecification as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedColour as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedColour as() const { return express::Base::as(); } - template, int> = 0> - IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedHatchStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleHatching as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleHatching as() const { return express::Base::as(); } - template, int> = 0> - IfcFillAreaStyleTiles as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFillAreaStyleTiles as() const { return express::Base::as(); } IfcFillStyleSelect(const IfcColour& c) : express::Select(c) {}; @@ -1567,14 +1799,17 @@ public: explicit IfcGeometricSetSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCurve as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurve as() const { return express::Base::as(); } - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcGeometricSetSelect(const IfcCurve& c) : express::Select(c) {}; @@ -1597,11 +1832,13 @@ public: explicit IfcGridPlacementDirectionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVirtualGridIntersection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVirtualGridIntersection as() const { return express::Base::as(); } IfcGridPlacementDirectionSelect(const IfcDirection& c) : express::Select(c) {}; @@ -1617,11 +1854,13 @@ public: explicit IfcHatchLineDistanceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcHatchLineDistanceSelect(const IfcPositiveLengthMeasure& c) : express::Select(c) {}; @@ -1635,11 +1874,13 @@ public: explicit IfcInterferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpatialElement as() const { return express::Base::as(); } IfcInterferenceSelect(const IfcElement& c) : express::Select(c) {}; @@ -1659,11 +1900,13 @@ public: explicit IfcLayeredItem(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcRepresentation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentation as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationItem as() const { return express::Base::as(); } IfcLayeredItem(const IfcRepresentation& c) : express::Select(c) {}; @@ -1686,11 +1929,13 @@ public: explicit IfcLibrarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcLibraryInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcLibraryReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLibraryReference as() const { return express::Base::as(); } IfcLibrarySelect(const IfcLibraryInformation& c) : express::Select(c) {}; @@ -1725,11 +1970,13 @@ public: explicit IfcLightDistributionDataSourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcLightIntensityDistribution as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLightIntensityDistribution as() const { return express::Base::as(); } IfcLightDistributionDataSourceSelect(const IfcExternalReference& c) : express::Select(c) {}; @@ -1768,14 +2015,17 @@ public: explicit IfcMaterialSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialList as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialList as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialUsageDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialUsageDefinition as() const { return express::Base::as(); } IfcMaterialSelect(const IfcMaterialDefinition& c) : express::Select(c) {}; @@ -1799,74 +2049,97 @@ public: explicit IfcMeasureValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } IfcMeasureValue(const IfcAmountOfSubstanceMeasure& c) : express::Select(c) {}; @@ -1933,356 +2206,473 @@ public: explicit IfcMetricValueSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureWithUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureWithUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReference as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } - template, int> = 0> - IfcValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcValue as() const { return express::Base::as(); } - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcMetricValueSelect(const IfcAppliedValue& c) : express::Select(c) {}; @@ -2528,11 +2918,13 @@ public: explicit IfcModulusOfRotationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfRotationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2548,11 +2940,13 @@ public: explicit IfcModulusOfSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2568,11 +2962,13 @@ public: explicit IfcModulusOfTranslationalSubgradeReactionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } IfcModulusOfTranslationalSubgradeReactionSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2588,32 +2984,41 @@ public: explicit IfcObjectReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcAddress as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAddress as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcTable as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTable as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcObjectReferenceSelect(const IfcAddress& c) : express::Select(c) {}; @@ -2647,11 +3052,13 @@ public: explicit IfcPointOrVertexPoint(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcVertexPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVertexPoint as() const { return express::Base::as(); } IfcPointOrVertexPoint(const IfcPoint& c) : express::Select(c) {}; @@ -2674,11 +3081,13 @@ public: explicit IfcProcessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProcess as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProcess as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProcess as() const { return express::Base::as(); } IfcProcessSelect(const IfcProcess& c) : express::Select(c) {}; @@ -2692,11 +3101,13 @@ public: explicit IfcProductRepresentationSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProductDefinitionShape as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProductDefinitionShape as() const { return express::Base::as(); } - template, int> = 0> - IfcRepresentationMap as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRepresentationMap as() const { return express::Base::as(); } IfcProductRepresentationSelect(const IfcProductDefinitionShape& c) : express::Select(c) {}; @@ -2718,11 +3129,13 @@ public: explicit IfcProductSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeProduct as() const { return express::Base::as(); } IfcProductSelect(const IfcProduct& c) : express::Select(c) {}; @@ -2736,11 +3149,13 @@ public: explicit IfcPropertySetDefinitionSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcPropertySetDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertySetDefinitionSet as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertySetDefinitionSet as() const { return express::Base::as(); } IfcPropertySetDefinitionSelect(const IfcPropertySetDefinition& c) : express::Select(c) {}; @@ -2756,56 +3171,73 @@ public: explicit IfcResourceObjectSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcActorRole as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcActorRole as() const { return express::Base::as(); } - template, int> = 0> - IfcAppliedValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAppliedValue as() const { return express::Base::as(); } - template, int> = 0> - IfcApproval as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcApproval as() const { return express::Base::as(); } - template, int> = 0> - IfcConstraint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConstraint as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcConversionBasedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcConversionBasedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalInformation as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalInformation as() const { return express::Base::as(); } - template, int> = 0> - IfcExternalReference as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalReference as() const { return express::Base::as(); } - template, int> = 0> - IfcMaterialDefinition as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMaterialDefinition as() const { return express::Base::as(); } - template, int> = 0> - IfcOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPerson as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPerson as() const { return express::Base::as(); } - template, int> = 0> - IfcPersonAndOrganization as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPersonAndOrganization as() const { return express::Base::as(); } - template, int> = 0> - IfcPhysicalQuantity as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPhysicalQuantity as() const { return express::Base::as(); } - template, int> = 0> - IfcProfileDef as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProfileDef as() const { return express::Base::as(); } - template, int> = 0> - IfcPropertyAbstraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPropertyAbstraction as() const { return express::Base::as(); } - template, int> = 0> - IfcShapeAspect as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShapeAspect as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeSeries as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeSeries as() const { return express::Base::as(); } IfcResourceObjectSelect(const IfcActorRole& c) : express::Select(c) {}; @@ -2857,11 +3289,13 @@ public: explicit IfcResourceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcResource as() const { return express::Base::as(); } - template, int> = 0> - IfcTypeResource as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTypeResource as() const { return express::Base::as(); } IfcResourceSelect(const IfcResource& c) : express::Select(c) {}; @@ -2877,11 +3311,13 @@ public: explicit IfcRotationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } IfcRotationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -2895,11 +3331,13 @@ public: explicit IfcSegmentIndexSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcArcIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcArcIndex as() const { return express::Base::as(); } - template, int> = 0> - IfcLineIndex as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLineIndex as() const { return express::Base::as(); } IfcSegmentIndexSelect(const IfcArcIndex& c) : express::Select(c) {}; @@ -2923,11 +3361,13 @@ public: explicit IfcShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcOpenShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcOpenShell as() const { return express::Base::as(); } IfcShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -2959,47 +3399,61 @@ public: explicit IfcSimpleValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcSimpleValue(const IfcBinary& c) : express::Select(c) {}; @@ -3048,23 +3502,29 @@ public: explicit IfcSizeSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcSizeSelect(const IfcDescriptiveMeasure& c) : express::Select(c) {}; @@ -3092,11 +3552,13 @@ public: explicit IfcSolidOrShell(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcClosedShell as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcClosedShell as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidModel as() const { return express::Base::as(); } IfcSolidOrShell(const IfcClosedShell& c) : express::Select(c) {}; @@ -3121,11 +3583,13 @@ public: explicit IfcSpaceBoundarySelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternalSpatialElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternalSpatialElement as() const { return express::Base::as(); } - template, int> = 0> - IfcSpace as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpace as() const { return express::Base::as(); } IfcSpaceBoundarySelect(const IfcExternalSpatialElement& c) : express::Select(c) {}; @@ -3139,11 +3603,13 @@ public: explicit IfcSpatialReferenceSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcGroup as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcGroup as() const { return express::Base::as(); } - template, int> = 0> - IfcProduct as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcProduct as() const { return express::Base::as(); } IfcSpatialReferenceSelect(const IfcGroup& c) : express::Select(c) {}; @@ -3166,11 +3632,13 @@ public: explicit IfcSpecularHighlightSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcSpecularExponent as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularExponent as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecularRoughness as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecularRoughness as() const { return express::Base::as(); } IfcSpecularHighlightSelect(const IfcSpecularExponent& c) : express::Select(c) {}; @@ -3192,11 +3660,13 @@ public: explicit IfcStructuralActivityAssignmentSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcElement as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElement as() const { return express::Base::as(); } - template, int> = 0> - IfcStructuralItem as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcStructuralItem as() const { return express::Base::as(); } IfcStructuralActivityAssignmentSelect(const IfcElement& c) : express::Select(c) {}; @@ -3218,14 +3688,17 @@ public: explicit IfcSurfaceOrFaceSurface(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceBasedSurfaceModel as() const { return express::Base::as(); } - template, int> = 0> - IfcFaceSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFaceSurface as() const { return express::Base::as(); } - template, int> = 0> - IfcSurface as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurface as() const { return express::Base::as(); } IfcSurfaceOrFaceSurface(const IfcFaceBasedSurfaceModel& c) : express::Select(c) {}; @@ -3249,20 +3722,25 @@ public: explicit IfcSurfaceStyleElementSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedSurfaceStyle as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleLighting as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleLighting as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleRefraction as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleRefraction as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleShading as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleShading as() const { return express::Base::as(); } - template, int> = 0> - IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSurfaceStyleWithTextures as() const { return express::Base::as(); } IfcSurfaceStyleElementSelect(const IfcExternallyDefinedSurfaceStyle& c) : express::Select(c) {}; @@ -3288,11 +3766,13 @@ public: explicit IfcTextFontSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcExternallyDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcExternallyDefinedTextFont as() const { return express::Base::as(); } - template, int> = 0> - IfcPreDefinedTextFont as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPreDefinedTextFont as() const { return express::Base::as(); } IfcTextFontSelect(const IfcExternallyDefinedTextFont& c) : express::Select(c) {}; @@ -3307,11 +3787,13 @@ public: explicit IfcTimeOrRatioSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } IfcTimeOrRatioSelect(const IfcDuration& c) : express::Select(c) {}; @@ -3327,11 +3809,13 @@ public: explicit IfcTranslationalStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } IfcTranslationalStiffnessSelect(const IfcBoolean& c) : express::Select(c) {}; @@ -3349,11 +3833,13 @@ public: explicit IfcTrimmingSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcCartesianPoint as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCartesianPoint as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } IfcTrimmingSelect(const IfcCartesianPoint& c) : express::Select(c) {}; @@ -3379,14 +3865,17 @@ public: explicit IfcUnit(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryUnit as() const { return express::Base::as(); } - template, int> = 0> - IfcNamedUnit as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNamedUnit as() const { return express::Base::as(); } IfcUnit(const IfcDerivedUnit& c) : express::Select(c) {}; @@ -3411,338 +3900,449 @@ public: explicit IfcValue(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDerivedMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDerivedMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAbsorbedDoseMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAccelerationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAccelerationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAngularVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAngularVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCompoundPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCurvatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCurvatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDoseEquivalentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDoseEquivalentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDynamicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDynamicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCapacitanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricChargeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricChargeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricConductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricConductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricVoltageMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricVoltageMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcEnergyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcEnergyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcHeatingValueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcHeatingValueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIlluminanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIlluminanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcInductanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInductanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIntegerCountRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIntegerCountRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIonConcentrationMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIonConcentrationMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIsothermalMoistureCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcKinematicViscosityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcKinematicViscosityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLinearVelocityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLinearVelocityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityDistributionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMagneticFluxMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMagneticFluxMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassDensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassDensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassPerLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassPerLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfElasticityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfLinearSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfRotationalSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcModulusOfSubgradeReactionMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMoistureDiffusivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMolecularWeightMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMolecularWeightMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMomentOfInertiaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMonetaryMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMonetaryMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPHMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPHMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPlanarForceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlanarForceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRadioActivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRadioActivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalFrequencyMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRotationalStiffnessMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSectionalAreaIntegralMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcShearModulusMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcShearModulusMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPowerMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPowerMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureLevelMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSoundPressureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSoundPressureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSpecificHeatCapacityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureGradientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureGradientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTemperatureRateOfChangeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalAdmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalConductivityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalConductivityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalExpansionCoefficientMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalResistanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalResistanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermalTransmittanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTorqueMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTorqueMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVaporPermeabilityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumetricFlowRateMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingConstantMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingConstantMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMeasureValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMeasureValue as() const { return express::Base::as(); } - template, int> = 0> - IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAmountOfSubstanceMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcAreaMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcAreaMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcComplexNumber as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcComplexNumber as() const { return express::Base::as(); } - template, int> = 0> - IfcContextDependentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcContextDependentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcCountMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcCountMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcDescriptiveMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDescriptiveMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcElectricCurrentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcElectricCurrentMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcLuminousIntensityMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLuminousIntensityMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcMassMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcMassMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNonNegativeLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNormalisedRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNormalisedRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcNumericMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcNumericMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcParameterValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcParameterValue as() const { return express::Base::as(); } - template, int> = 0> - IfcPlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveLengthMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveLengthMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositivePlaneAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcRatioMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcRatioMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSolidAngleMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSolidAngleMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcThermodynamicTemperatureMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcVolumeMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVolumeMeasure as() const { return express::Base::as(); } - template, int> = 0> - IfcSimpleValue as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcSimpleValue as() const { return express::Base::as(); } - template, int> = 0> - IfcBinary as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBinary as() const { return express::Base::as(); } - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcDate as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDate as() const { return express::Base::as(); } - template, int> = 0> - IfcDateTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDateTime as() const { return express::Base::as(); } - template, int> = 0> - IfcDuration as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDuration as() const { return express::Base::as(); } - template, int> = 0> - IfcIdentifier as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcIdentifier as() const { return express::Base::as(); } - template, int> = 0> - IfcInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcLabel as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLabel as() const { return express::Base::as(); } - template, int> = 0> - IfcLogical as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcLogical as() const { return express::Base::as(); } - template, int> = 0> - IfcPositiveInteger as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcPositiveInteger as() const { return express::Base::as(); } - template, int> = 0> - IfcReal as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcReal as() const { return express::Base::as(); } - template, int> = 0> - IfcText as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcText as() const { return express::Base::as(); } - template, int> = 0> - IfcTime as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTime as() const { return express::Base::as(); } - template, int> = 0> - IfcTimeStamp as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcTimeStamp as() const { return express::Base::as(); } IfcValue(const IfcDerivedMeasureValue& c) : express::Select(c) {}; @@ -3981,11 +4581,13 @@ public: explicit IfcVectorOrDirection(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcDirection as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcDirection as() const { return express::Base::as(); } - template, int> = 0> - IfcVector as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcVector as() const { return express::Base::as(); } IfcVectorOrDirection(const IfcDirection& c) : express::Select(c) {}; @@ -4001,11 +4603,13 @@ public: explicit IfcWarpingStiffnessSelect(const express::Base& c) : express::Select(c) {} static const IfcParse::select_type& Class(); - template, int> = 0> - IfcBoolean as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcBoolean as() const { return express::Base::as(); } - template, int> = 0> - IfcWarpingMomentMeasure as() const { return express::Base::as(); } + // let's just use the as<>() from Base instead directly... + // template, int> = 0> + // IfcWarpingMomentMeasure as() const { return express::Base::as(); } IfcWarpingStiffnessSelect(const IfcBoolean& c) : express::Select(c) {};