From ef7eee411b29a82b55e3eec308baa20b8d3987c6 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 20 Jan 2019 13:47:12 +0100 Subject: [PATCH 01/52] Update to IFC4Add2TC1 --- src/ifcparse/Ifc4-latebound.cpp | 41 +++++- src/ifcparse/Ifc4.cpp | 175 ++++++++++++++++++------ src/ifcparse/Ifc4.h | 227 ++++++++++++++++++++++++++------ src/ifcparse/Ifc4enum.h | 2 +- 4 files changed, 357 insertions(+), 88 deletions(-) diff --git a/src/ifcparse/Ifc4-latebound.cpp b/src/ifcparse/Ifc4-latebound.cpp index 0b4de36f01..7a6b8611d3 100644 --- a/src/ifcparse/Ifc4-latebound.cpp +++ b/src/ifcparse/Ifc4-latebound.cpp @@ -271,8 +271,6 @@ void InitDescriptorMap() { current->add("wrappedValue",false,IfcUtil::Argument_DOUBLE); current = entity_descriptor_map[Type::IfcSpecularRoughness] = new IfcEntityDescriptor(Type::IfcSpecularRoughness,0); current->add("wrappedValue",false,IfcUtil::Argument_DOUBLE); - current = entity_descriptor_map[Type::IfcStrippedOptional] = new IfcEntityDescriptor(Type::IfcStrippedOptional,0); - current->add("wrappedValue",false,IfcUtil::Argument_BOOL); current = entity_descriptor_map[Type::IfcTemperatureGradientMeasure] = new IfcEntityDescriptor(Type::IfcTemperatureGradientMeasure,0); current->add("wrappedValue",false,IfcUtil::Argument_DOUBLE); current = entity_descriptor_map[Type::IfcTemperatureRateOfChangeMeasure] = new IfcEntityDescriptor(Type::IfcTemperatureRateOfChangeMeasure,0); @@ -1484,6 +1482,10 @@ void InitDescriptorMap() { current->add("FilletRadius",true,IfcUtil::Argument_DOUBLE,Type::IfcNonNegativeLengthMeasure); current->add("FlangeEdgeRadius",true,IfcUtil::Argument_DOUBLE,Type::IfcNonNegativeLengthMeasure); current->add("FlangeSlope",true,IfcUtil::Argument_DOUBLE,Type::IfcPlaneAngleMeasure); + current = entity_descriptor_map[Type::IfcIndexedPolygonalFace] = new IfcEntityDescriptor(Type::IfcIndexedPolygonalFace,entity_descriptor_map.find(Type::IfcTessellatedItem)->second); + current->add("CoordIndex",false,IfcUtil::Argument_AGGREGATE_OF_INT,Type::IfcPositiveInteger); + current = entity_descriptor_map[Type::IfcIndexedPolygonalFaceWithVoids] = new IfcEntityDescriptor(Type::IfcIndexedPolygonalFaceWithVoids,entity_descriptor_map.find(Type::IfcIndexedPolygonalFace)->second); + current->add("InnerCoordIndices",false,IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_INT,Type::IfcPositiveInteger); current = entity_descriptor_map[Type::IfcLShapeProfileDef] = new IfcEntityDescriptor(Type::IfcLShapeProfileDef,entity_descriptor_map.find(Type::IfcParameterizedProfileDef)->second); current->add("Depth",false,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); current->add("Width",true,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); @@ -1766,6 +1768,8 @@ void InitDescriptorMap() { current->add("LongName",true,IfcUtil::Argument_STRING,Type::IfcLabel); current = entity_descriptor_map[Type::IfcSphere] = new IfcEntityDescriptor(Type::IfcSphere,entity_descriptor_map.find(Type::IfcCsgPrimitive3D)->second); current->add("Radius",false,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); + current = entity_descriptor_map[Type::IfcSphericalSurface] = new IfcEntityDescriptor(Type::IfcSphericalSurface,entity_descriptor_map.find(Type::IfcElementarySurface)->second); + current->add("Radius",false,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); current = entity_descriptor_map[Type::IfcStructuralActivity] = new IfcEntityDescriptor(Type::IfcStructuralActivity,entity_descriptor_map.find(Type::IfcProduct)->second); current->add("AppliedLoad",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcStructuralLoad); current->add("GlobalOrLocal",false,IfcUtil::Argument_ENUMERATION,Type::IfcGlobalOrLocalEnum); @@ -1784,6 +1788,10 @@ void InitDescriptorMap() { current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcStructuralSurfaceActivityTypeEnum); current = entity_descriptor_map[Type::IfcSubContractResourceType] = new IfcEntityDescriptor(Type::IfcSubContractResourceType,entity_descriptor_map.find(Type::IfcConstructionResourceType)->second); current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcSubContractResourceTypeEnum); + current = entity_descriptor_map[Type::IfcSurfaceCurve] = new IfcEntityDescriptor(Type::IfcSurfaceCurve,entity_descriptor_map.find(Type::IfcCurve)->second); + current->add("Curve3D",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcCurve); + current->add("AssociatedGeometry",false,IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE,Type::IfcPcurve); + current->add("MasterRepresentation",false,IfcUtil::Argument_ENUMERATION,Type::IfcPreferredSurfaceCurveRepresentation); current = entity_descriptor_map[Type::IfcSurfaceCurveSweptAreaSolid] = new IfcEntityDescriptor(Type::IfcSurfaceCurveSweptAreaSolid,entity_descriptor_map.find(Type::IfcSweptAreaSolid)->second); current->add("Directrix",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcCurve); current->add("StartParam",true,IfcUtil::Argument_DOUBLE,Type::IfcParameterValue); @@ -1808,13 +1816,16 @@ void InitDescriptorMap() { current->add("WorkMethod",true,IfcUtil::Argument_STRING,Type::IfcLabel); current = entity_descriptor_map[Type::IfcTessellatedFaceSet] = new IfcEntityDescriptor(Type::IfcTessellatedFaceSet,entity_descriptor_map.find(Type::IfcTessellatedItem)->second); current->add("Coordinates",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcCartesianPointList3D); - current->add("Normals",true,IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_DOUBLE,Type::IfcParameterValue); - current->add("Closed",true,IfcUtil::Argument_BOOL,Type::IfcBoolean); + current = entity_descriptor_map[Type::IfcToroidalSurface] = new IfcEntityDescriptor(Type::IfcToroidalSurface,entity_descriptor_map.find(Type::IfcElementarySurface)->second); + current->add("MajorRadius",false,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); + current->add("MinorRadius",false,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); current = entity_descriptor_map[Type::IfcTransportElementType] = new IfcEntityDescriptor(Type::IfcTransportElementType,entity_descriptor_map.find(Type::IfcElementType)->second); current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcTransportElementTypeEnum); current = entity_descriptor_map[Type::IfcTriangulatedFaceSet] = new IfcEntityDescriptor(Type::IfcTriangulatedFaceSet,entity_descriptor_map.find(Type::IfcTessellatedFaceSet)->second); + current->add("Normals",true,IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_DOUBLE,Type::IfcParameterValue); + current->add("Closed",true,IfcUtil::Argument_BOOL,Type::IfcBoolean); current->add("CoordIndex",false,IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_INT,Type::IfcPositiveInteger); - current->add("NormalIndex",true,IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_INT,Type::IfcPositiveInteger); + current->add("PnIndex",true,IfcUtil::Argument_AGGREGATE_OF_INT,Type::IfcPositiveInteger); current = entity_descriptor_map[Type::IfcWindowLiningProperties] = new IfcEntityDescriptor(Type::IfcWindowLiningProperties,entity_descriptor_map.find(Type::IfcPreDefinedPropertySet)->second); current->add("LiningDepth",true,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); current->add("LiningThickness",true,IfcUtil::Argument_DOUBLE,Type::IfcNonNegativeLengthMeasure); @@ -2037,6 +2048,8 @@ void InitDescriptorMap() { current->add("SelfIntersect",true,IfcUtil::Argument_BOOL,Type::IfcBoolean); current = entity_descriptor_map[Type::IfcInterceptorType] = new IfcEntityDescriptor(Type::IfcInterceptorType,entity_descriptor_map.find(Type::IfcFlowTreatmentDeviceType)->second); current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcInterceptorTypeEnum); + current = entity_descriptor_map[Type::IfcIntersectionCurve] = new IfcEntityDescriptor(Type::IfcIntersectionCurve,entity_descriptor_map.find(Type::IfcSurfaceCurve)->second); + current = entity_descriptor_map[Type::IfcInventory] = new IfcEntityDescriptor(Type::IfcInventory,entity_descriptor_map.find(Type::IfcGroup)->second); current->add("PredefinedType",true,IfcUtil::Argument_ENUMERATION,Type::IfcInventoryTypeEnum); current->add("Jurisdiction",true,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcActorSelect); @@ -2095,6 +2108,10 @@ void InitDescriptorMap() { current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcPipeSegmentTypeEnum); current = entity_descriptor_map[Type::IfcPlateType] = new IfcEntityDescriptor(Type::IfcPlateType,entity_descriptor_map.find(Type::IfcBuildingElementType)->second); current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcPlateTypeEnum); + current = entity_descriptor_map[Type::IfcPolygonalFaceSet] = new IfcEntityDescriptor(Type::IfcPolygonalFaceSet,entity_descriptor_map.find(Type::IfcTessellatedFaceSet)->second); + current->add("Closed",true,IfcUtil::Argument_BOOL,Type::IfcBoolean); + current->add("Faces",false,IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE,Type::IfcIndexedPolygonalFace); + current->add("PnIndex",true,IfcUtil::Argument_AGGREGATE_OF_INT,Type::IfcPositiveInteger); current = entity_descriptor_map[Type::IfcPolyline] = new IfcEntityDescriptor(Type::IfcPolyline,entity_descriptor_map.find(Type::IfcBoundedCurve)->second); current->add("Points",false,IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE,Type::IfcCartesianPoint); current = entity_descriptor_map[Type::IfcPort] = new IfcEntityDescriptor(Type::IfcPort,entity_descriptor_map.find(Type::IfcProduct)->second); @@ -2152,6 +2169,8 @@ void InitDescriptorMap() { current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcRoofTypeEnum); current = entity_descriptor_map[Type::IfcSanitaryTerminalType] = new IfcEntityDescriptor(Type::IfcSanitaryTerminalType,entity_descriptor_map.find(Type::IfcFlowTerminalType)->second); current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcSanitaryTerminalTypeEnum); + current = entity_descriptor_map[Type::IfcSeamCurve] = new IfcEntityDescriptor(Type::IfcSeamCurve,entity_descriptor_map.find(Type::IfcSurfaceCurve)->second); + current = entity_descriptor_map[Type::IfcShadingDeviceType] = new IfcEntityDescriptor(Type::IfcShadingDeviceType,entity_descriptor_map.find(Type::IfcBuildingElementType)->second); current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcShadingDeviceTypeEnum); current = entity_descriptor_map[Type::IfcSite] = new IfcEntityDescriptor(Type::IfcSite,entity_descriptor_map.find(Type::IfcSpatialStructureElement)->second); @@ -2246,7 +2265,7 @@ void InitDescriptorMap() { current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcTendonTypeEnum); current->add("NominalDiameter",true,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); current->add("CrossSectionArea",true,IfcUtil::Argument_DOUBLE,Type::IfcAreaMeasure); - current->add("SheethDiameter",true,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); + current->add("SheathDiameter",true,IfcUtil::Argument_DOUBLE,Type::IfcPositiveLengthMeasure); current = entity_descriptor_map[Type::IfcTransformerType] = new IfcEntityDescriptor(Type::IfcTransformerType,entity_descriptor_map.find(Type::IfcEnergyConversionDeviceType)->second); current->add("PredefinedType",false,IfcUtil::Argument_ENUMERATION,Type::IfcTransformerTypeEnum); current = entity_descriptor_map[Type::IfcTransportElement] = new IfcEntityDescriptor(Type::IfcTransportElement,entity_descriptor_map.find(Type::IfcElement)->second); @@ -2904,6 +2923,7 @@ void InitDescriptorMap() { values.push_back("ELEMENT"); values.push_back("PARTIAL"); values.push_back("PROVISIONFORVOID"); + values.push_back("PROVISIONFORSPACE"); values.push_back("USERDEFINED"); values.push_back("NOTDEFINED"); enumeration_descriptor_map[Type::IfcBuildingElementProxyTypeEnum] = new IfcEnumerationDescriptor(Type::IfcBuildingElementProxyTypeEnum, values); @@ -3548,7 +3568,7 @@ void InitDescriptorMap() { values.push_back("EXTERNAL_WATER"); values.push_back("EXTERNAL_FIRE"); values.push_back("USERDEFINED"); - values.push_back("NOTDEFIEND"); + values.push_back("NOTDEFINED"); enumeration_descriptor_map[Type::IfcExternalSpatialElementTypeEnum] = new IfcEnumerationDescriptor(Type::IfcExternalSpatialElementTypeEnum, values); values.clear(); values.reserve(128); values.push_back("CENTRIFUGALFORWARDCURVED"); @@ -3968,6 +3988,11 @@ void InitDescriptorMap() { values.push_back("NOTDEFINED"); enumeration_descriptor_map[Type::IfcPlateTypeEnum] = new IfcEnumerationDescriptor(Type::IfcPlateTypeEnum, values); values.clear(); values.reserve(128); + values.push_back("CURVE3D"); + values.push_back("PCURVE_S1"); + values.push_back("PCURVE_S2"); + enumeration_descriptor_map[Type::IfcPreferredSurfaceCurveRepresentation] = new IfcEnumerationDescriptor(Type::IfcPreferredSurfaceCurveRepresentation, values); + values.clear(); values.reserve(128); values.push_back("ADVICE_CAUTION"); values.push_back("ADVICE_NOTE"); values.push_back("ADVICE_WARNING"); @@ -4227,6 +4252,7 @@ void InitDescriptorMap() { values.push_back("TAPERED"); enumeration_descriptor_map[Type::IfcSectionTypeEnum] = new IfcEnumerationDescriptor(Type::IfcSectionTypeEnum, values); values.clear(); values.reserve(128); + values.push_back("COSENSOR"); values.push_back("CO2SENSOR"); values.push_back("CONDUCTANCESENSOR"); values.push_back("CONTACTSENSOR"); @@ -4804,6 +4830,7 @@ void InitInverseMap() { inverse_map[Type::IfcGridAxis].insert(std::make_pair("PartOfU", std::make_pair(Type::IfcGrid, 7))); inverse_map[Type::IfcGridAxis].insert(std::make_pair("HasIntersections", std::make_pair(Type::IfcVirtualGridIntersection, 0))); inverse_map[Type::IfcGroup].insert(std::make_pair("IsGroupedBy", std::make_pair(Type::IfcRelAssignsToGroup, 6))); + inverse_map[Type::IfcIndexedPolygonalFace].insert(std::make_pair("ToFaceSet", std::make_pair(Type::IfcPolygonalFaceSet, 2))); inverse_map[Type::IfcLibraryInformation].insert(std::make_pair("LibraryInfoForObjects", std::make_pair(Type::IfcRelAssociatesLibrary, 5))); inverse_map[Type::IfcLibraryInformation].insert(std::make_pair("HasLibraryReferences", std::make_pair(Type::IfcLibraryReference, 5))); inverse_map[Type::IfcLibraryReference].insert(std::make_pair("LibraryRefForObjects", std::make_pair(Type::IfcRelAssociatesLibrary, 5))); diff --git a/src/ifcparse/Ifc4.cpp b/src/ifcparse/Ifc4.cpp index e5ee45e9b5..5179f08926 100644 --- a/src/ifcparse/Ifc4.cpp +++ b/src/ifcparse/Ifc4.cpp @@ -145,7 +145,6 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { case Type::IfcSpecificHeatCapacityMeasure: return new IfcSpecificHeatCapacityMeasure(e); break; case Type::IfcSpecularExponent: return new IfcSpecularExponent(e); break; case Type::IfcSpecularRoughness: return new IfcSpecularRoughness(e); break; - case Type::IfcStrippedOptional: return new IfcStrippedOptional(e); break; case Type::IfcTemperatureGradientMeasure: return new IfcTemperatureGradientMeasure(e); break; case Type::IfcTemperatureRateOfChangeMeasure: return new IfcTemperatureRateOfChangeMeasure(e); break; case Type::IfcText: return new IfcText(e); break; @@ -488,10 +487,13 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { case Type::IfcImageTexture: return new IfcImageTexture(e); break; case Type::IfcIndexedColourMap: return new IfcIndexedColourMap(e); break; case Type::IfcIndexedPolyCurve: return new IfcIndexedPolyCurve(e); break; + case Type::IfcIndexedPolygonalFace: return new IfcIndexedPolygonalFace(e); break; + case Type::IfcIndexedPolygonalFaceWithVoids: return new IfcIndexedPolygonalFaceWithVoids(e); break; case Type::IfcIndexedTextureMap: return new IfcIndexedTextureMap(e); break; case Type::IfcIndexedTriangleTextureMap: return new IfcIndexedTriangleTextureMap(e); break; case Type::IfcInterceptor: return new IfcInterceptor(e); break; case Type::IfcInterceptorType: return new IfcInterceptorType(e); break; + case Type::IfcIntersectionCurve: return new IfcIntersectionCurve(e); break; case Type::IfcInventory: return new IfcInventory(e); break; case Type::IfcIrregularTimeSeries: return new IfcIrregularTimeSeries(e); break; case Type::IfcIrregularTimeSeriesValue: return new IfcIrregularTimeSeriesValue(e); break; @@ -601,6 +603,7 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { case Type::IfcPointOnSurface: return new IfcPointOnSurface(e); break; case Type::IfcPolyLoop: return new IfcPolyLoop(e); break; case Type::IfcPolygonalBoundedHalfSpace: return new IfcPolygonalBoundedHalfSpace(e); break; + case Type::IfcPolygonalFaceSet: return new IfcPolygonalFaceSet(e); break; case Type::IfcPolyline: return new IfcPolyline(e); break; case Type::IfcPort: return new IfcPort(e); break; case Type::IfcPostalAddress: return new IfcPostalAddress(e); break; @@ -751,6 +754,7 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { case Type::IfcSanitaryTerminal: return new IfcSanitaryTerminal(e); break; case Type::IfcSanitaryTerminalType: return new IfcSanitaryTerminalType(e); break; case Type::IfcSchedulingTime: return new IfcSchedulingTime(e); break; + case Type::IfcSeamCurve: return new IfcSeamCurve(e); break; case Type::IfcSectionProperties: return new IfcSectionProperties(e); break; case Type::IfcSectionReinforcementProperties: return new IfcSectionReinforcementProperties(e); break; case Type::IfcSectionedSpine: return new IfcSectionedSpine(e); break; @@ -784,6 +788,7 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { case Type::IfcSpatialZone: return new IfcSpatialZone(e); break; case Type::IfcSpatialZoneType: return new IfcSpatialZoneType(e); break; case Type::IfcSphere: return new IfcSphere(e); break; + case Type::IfcSphericalSurface: return new IfcSphericalSurface(e); break; case Type::IfcStackTerminal: return new IfcStackTerminal(e); break; case Type::IfcStackTerminalType: return new IfcStackTerminalType(e); break; case Type::IfcStair: return new IfcStair(e); break; @@ -834,6 +839,7 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { case Type::IfcSubContractResourceType: return new IfcSubContractResourceType(e); break; case Type::IfcSubedge: return new IfcSubedge(e); break; case Type::IfcSurface: return new IfcSurface(e); break; + case Type::IfcSurfaceCurve: return new IfcSurfaceCurve(e); break; case Type::IfcSurfaceCurveSweptAreaSolid: return new IfcSurfaceCurveSweptAreaSolid(e); break; case Type::IfcSurfaceFeature: return new IfcSurfaceFeature(e); break; case Type::IfcSurfaceOfLinearExtrusion: return new IfcSurfaceOfLinearExtrusion(e); break; @@ -888,6 +894,7 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { case Type::IfcTimeSeriesValue: return new IfcTimeSeriesValue(e); break; case Type::IfcTopologicalRepresentationItem: return new IfcTopologicalRepresentationItem(e); break; case Type::IfcTopologyRepresentation: return new IfcTopologyRepresentation(e); break; + case Type::IfcToroidalSurface: return new IfcToroidalSurface(e); break; case Type::IfcTransformer: return new IfcTransformer(e); break; case Type::IfcTransformerType: return new IfcTransformerType(e); break; case Type::IfcTransportElement: return new IfcTransportElement(e); break; @@ -942,8 +949,8 @@ IfcUtil::IfcBaseClass* Ifc4::SchemaEntity(IfcEntityInstanceData* e) { } const std::string& Type::ToString(Enum v) { - if (v < 0 || v >= 1165) throw IfcException("Unable to find find keyword in schema"); - static std::string names[] = { "IfcAbsorbedDoseMeasure", "IfcAccelerationMeasure", "IfcActionRequest", "IfcActionRequestTypeEnum", "IfcActionSourceTypeEnum", "IfcActionTypeEnum", "IfcActor", "IfcActorRole", "IfcActorSelect", "IfcActuator", "IfcActuatorType", "IfcActuatorTypeEnum", "IfcAddress", "IfcAddressTypeEnum", "IfcAdvancedBrep", "IfcAdvancedBrepWithVoids", "IfcAdvancedFace", "IfcAirTerminal", "IfcAirTerminalBox", "IfcAirTerminalBoxType", "IfcAirTerminalBoxTypeEnum", "IfcAirTerminalType", "IfcAirTerminalTypeEnum", "IfcAirToAirHeatRecovery", "IfcAirToAirHeatRecoveryType", "IfcAirToAirHeatRecoveryTypeEnum", "IfcAlarm", "IfcAlarmType", "IfcAlarmTypeEnum", "IfcAmountOfSubstanceMeasure", "IfcAnalysisModelTypeEnum", "IfcAnalysisTheoryTypeEnum", "IfcAngularVelocityMeasure", "IfcAnnotation", "IfcAnnotationFillArea", "IfcApplication", "IfcAppliedValue", "IfcAppliedValueSelect", "IfcApproval", "IfcApprovalRelationship", "IfcArbitraryClosedProfileDef", "IfcArbitraryOpenProfileDef", "IfcArbitraryProfileDefWithVoids", "IfcArcIndex", "IfcAreaDensityMeasure", "IfcAreaMeasure", "IfcArithmeticOperatorEnum", "IfcAssemblyPlaceEnum", "IfcAsset", "IfcAsymmetricIShapeProfileDef", "IfcAudioVisualAppliance", "IfcAudioVisualApplianceType", "IfcAudioVisualApplianceTypeEnum", "IfcAxis1Placement", "IfcAxis2Placement", "IfcAxis2Placement2D", "IfcAxis2Placement3D", "IfcBSplineCurve", "IfcBSplineCurveForm", "IfcBSplineCurveWithKnots", "IfcBSplineSurface", "IfcBSplineSurfaceForm", "IfcBSplineSurfaceWithKnots", "IfcBeam", "IfcBeamStandardCase", "IfcBeamType", "IfcBeamTypeEnum", "IfcBenchmarkEnum", "IfcBendingParameterSelect", "IfcBinary", "IfcBlobTexture", "IfcBlock", "IfcBoiler", "IfcBoilerType", "IfcBoilerTypeEnum", "IfcBoolean", "IfcBooleanClippingResult", "IfcBooleanOperand", "IfcBooleanOperator", "IfcBooleanResult", "IfcBoundaryCondition", "IfcBoundaryCurve", "IfcBoundaryEdgeCondition", "IfcBoundaryFaceCondition", "IfcBoundaryNodeCondition", "IfcBoundaryNodeConditionWarping", "IfcBoundedCurve", "IfcBoundedSurface", "IfcBoundingBox", "IfcBoxAlignment", "IfcBoxedHalfSpace", "IfcBuilding", "IfcBuildingElement", "IfcBuildingElementPart", "IfcBuildingElementPartType", "IfcBuildingElementPartTypeEnum", "IfcBuildingElementProxy", "IfcBuildingElementProxyType", "IfcBuildingElementProxyTypeEnum", "IfcBuildingElementType", "IfcBuildingStorey", "IfcBuildingSystem", "IfcBuildingSystemTypeEnum", "IfcBurner", "IfcBurnerType", "IfcBurnerTypeEnum", "IfcCShapeProfileDef", "IfcCableCarrierFitting", "IfcCableCarrierFittingType", "IfcCableCarrierFittingTypeEnum", "IfcCableCarrierSegment", "IfcCableCarrierSegmentType", "IfcCableCarrierSegmentTypeEnum", "IfcCableFitting", "IfcCableFittingType", "IfcCableFittingTypeEnum", "IfcCableSegment", "IfcCableSegmentType", "IfcCableSegmentTypeEnum", "IfcCardinalPointReference", "IfcCartesianPoint", "IfcCartesianPointList", "IfcCartesianPointList2D", "IfcCartesianPointList3D", "IfcCartesianTransformationOperator", "IfcCartesianTransformationOperator2D", "IfcCartesianTransformationOperator2DnonUniform", "IfcCartesianTransformationOperator3D", "IfcCartesianTransformationOperator3DnonUniform", "IfcCenterLineProfileDef", "IfcChangeActionEnum", "IfcChiller", "IfcChillerType", "IfcChillerTypeEnum", "IfcChimney", "IfcChimneyType", "IfcChimneyTypeEnum", "IfcCircle", "IfcCircleHollowProfileDef", "IfcCircleProfileDef", "IfcCivilElement", "IfcCivilElementType", "IfcClassification", "IfcClassificationReference", "IfcClassificationReferenceSelect", "IfcClassificationSelect", "IfcClosedShell", "IfcCoil", "IfcCoilType", "IfcCoilTypeEnum", "IfcColour", "IfcColourOrFactor", "IfcColourRgb", "IfcColourRgbList", "IfcColourSpecification", "IfcColumn", "IfcColumnStandardCase", "IfcColumnType", "IfcColumnTypeEnum", "IfcCommunicationsAppliance", "IfcCommunicationsApplianceType", "IfcCommunicationsApplianceTypeEnum", "IfcComplexNumber", "IfcComplexProperty", "IfcComplexPropertyTemplate", "IfcComplexPropertyTemplateTypeEnum", "IfcCompositeCurve", "IfcCompositeCurveOnSurface", "IfcCompositeCurveSegment", "IfcCompositeProfileDef", "IfcCompoundPlaneAngleMeasure", "IfcCompressor", "IfcCompressorType", "IfcCompressorTypeEnum", "IfcCondenser", "IfcCondenserType", "IfcCondenserTypeEnum", "IfcConic", "IfcConnectedFaceSet", "IfcConnectionCurveGeometry", "IfcConnectionGeometry", "IfcConnectionPointEccentricity", "IfcConnectionPointGeometry", "IfcConnectionSurfaceGeometry", "IfcConnectionTypeEnum", "IfcConnectionVolumeGeometry", "IfcConstraint", "IfcConstraintEnum", "IfcConstructionEquipmentResource", "IfcConstructionEquipmentResourceType", "IfcConstructionEquipmentResourceTypeEnum", "IfcConstructionMaterialResource", "IfcConstructionMaterialResourceType", "IfcConstructionMaterialResourceTypeEnum", "IfcConstructionProductResource", "IfcConstructionProductResourceType", "IfcConstructionProductResourceTypeEnum", "IfcConstructionResource", "IfcConstructionResourceType", "IfcContext", "IfcContextDependentMeasure", "IfcContextDependentUnit", "IfcControl", "IfcController", "IfcControllerType", "IfcControllerTypeEnum", "IfcConversionBasedUnit", "IfcConversionBasedUnitWithOffset", "IfcCooledBeam", "IfcCooledBeamType", "IfcCooledBeamTypeEnum", "IfcCoolingTower", "IfcCoolingTowerType", "IfcCoolingTowerTypeEnum", "IfcCoordinateOperation", "IfcCoordinateReferenceSystem", "IfcCoordinateReferenceSystemSelect", "IfcCostItem", "IfcCostItemTypeEnum", "IfcCostSchedule", "IfcCostScheduleTypeEnum", "IfcCostValue", "IfcCountMeasure", "IfcCovering", "IfcCoveringType", "IfcCoveringTypeEnum", "IfcCrewResource", "IfcCrewResourceType", "IfcCrewResourceTypeEnum", "IfcCsgPrimitive3D", "IfcCsgSelect", "IfcCsgSolid", "IfcCurrencyRelationship", "IfcCurtainWall", "IfcCurtainWallType", "IfcCurtainWallTypeEnum", "IfcCurvatureMeasure", "IfcCurve", "IfcCurveBoundedPlane", "IfcCurveBoundedSurface", "IfcCurveFontOrScaledCurveFontSelect", "IfcCurveInterpolationEnum", "IfcCurveOnSurface", "IfcCurveOrEdgeCurve", "IfcCurveStyle", "IfcCurveStyleFont", "IfcCurveStyleFontAndScaling", "IfcCurveStyleFontPattern", "IfcCurveStyleFontSelect", "IfcCylindricalSurface", "IfcDamper", "IfcDamperType", "IfcDamperTypeEnum", "IfcDataOriginEnum", "IfcDate", "IfcDateTime", "IfcDayInMonthNumber", "IfcDayInWeekNumber", "IfcDefinitionSelect", "IfcDerivedMeasureValue", "IfcDerivedProfileDef", "IfcDerivedUnit", "IfcDerivedUnitElement", "IfcDerivedUnitEnum", "IfcDescriptiveMeasure", "IfcDimensionCount", "IfcDimensionalExponents", "IfcDirection", "IfcDirectionSenseEnum", "IfcDiscreteAccessory", "IfcDiscreteAccessoryType", "IfcDiscreteAccessoryTypeEnum", "IfcDistributionChamberElement", "IfcDistributionChamberElementType", "IfcDistributionChamberElementTypeEnum", "IfcDistributionCircuit", "IfcDistributionControlElement", "IfcDistributionControlElementType", "IfcDistributionElement", "IfcDistributionElementType", "IfcDistributionFlowElement", "IfcDistributionFlowElementType", "IfcDistributionPort", "IfcDistributionPortTypeEnum", "IfcDistributionSystem", "IfcDistributionSystemEnum", "IfcDocumentConfidentialityEnum", "IfcDocumentInformation", "IfcDocumentInformationRelationship", "IfcDocumentReference", "IfcDocumentSelect", "IfcDocumentStatusEnum", "IfcDoor", "IfcDoorLiningProperties", "IfcDoorPanelOperationEnum", "IfcDoorPanelPositionEnum", "IfcDoorPanelProperties", "IfcDoorStandardCase", "IfcDoorStyle", "IfcDoorStyleConstructionEnum", "IfcDoorStyleOperationEnum", "IfcDoorType", "IfcDoorTypeEnum", "IfcDoorTypeOperationEnum", "IfcDoseEquivalentMeasure", "IfcDraughtingPreDefinedColour", "IfcDraughtingPreDefinedCurveFont", "IfcDuctFitting", "IfcDuctFittingType", "IfcDuctFittingTypeEnum", "IfcDuctSegment", "IfcDuctSegmentType", "IfcDuctSegmentTypeEnum", "IfcDuctSilencer", "IfcDuctSilencerType", "IfcDuctSilencerTypeEnum", "IfcDuration", "IfcDynamicViscosityMeasure", "IfcEdge", "IfcEdgeCurve", "IfcEdgeLoop", "IfcElectricAppliance", "IfcElectricApplianceType", "IfcElectricApplianceTypeEnum", "IfcElectricCapacitanceMeasure", "IfcElectricChargeMeasure", "IfcElectricConductanceMeasure", "IfcElectricCurrentMeasure", "IfcElectricDistributionBoard", "IfcElectricDistributionBoardType", "IfcElectricDistributionBoardTypeEnum", "IfcElectricFlowStorageDevice", "IfcElectricFlowStorageDeviceType", "IfcElectricFlowStorageDeviceTypeEnum", "IfcElectricGenerator", "IfcElectricGeneratorType", "IfcElectricGeneratorTypeEnum", "IfcElectricMotor", "IfcElectricMotorType", "IfcElectricMotorTypeEnum", "IfcElectricResistanceMeasure", "IfcElectricTimeControl", "IfcElectricTimeControlType", "IfcElectricTimeControlTypeEnum", "IfcElectricVoltageMeasure", "IfcElement", "IfcElementAssembly", "IfcElementAssemblyType", "IfcElementAssemblyTypeEnum", "IfcElementComponent", "IfcElementComponentType", "IfcElementCompositionEnum", "IfcElementQuantity", "IfcElementType", "IfcElementarySurface", "IfcEllipse", "IfcEllipseProfileDef", "IfcEnergyConversionDevice", "IfcEnergyConversionDeviceType", "IfcEnergyMeasure", "IfcEngine", "IfcEngineType", "IfcEngineTypeEnum", "IfcEvaporativeCooler", "IfcEvaporativeCoolerType", "IfcEvaporativeCoolerTypeEnum", "IfcEvaporator", "IfcEvaporatorType", "IfcEvaporatorTypeEnum", "IfcEvent", "IfcEventTime", "IfcEventTriggerTypeEnum", "IfcEventType", "IfcEventTypeEnum", "IfcExtendedProperties", "IfcExternalInformation", "IfcExternalReference", "IfcExternalReferenceRelationship", "IfcExternalSpatialElement", "IfcExternalSpatialElementTypeEnum", "IfcExternalSpatialStructureElement", "IfcExternallyDefinedHatchStyle", "IfcExternallyDefinedSurfaceStyle", "IfcExternallyDefinedTextFont", "IfcExtrudedAreaSolid", "IfcExtrudedAreaSolidTapered", "IfcFace", "IfcFaceBasedSurfaceModel", "IfcFaceBound", "IfcFaceOuterBound", "IfcFaceSurface", "IfcFacetedBrep", "IfcFacetedBrepWithVoids", "IfcFailureConnectionCondition", "IfcFan", "IfcFanType", "IfcFanTypeEnum", "IfcFastener", "IfcFastenerType", "IfcFastenerTypeEnum", "IfcFeatureElement", "IfcFeatureElementAddition", "IfcFeatureElementSubtraction", "IfcFillAreaStyle", "IfcFillAreaStyleHatching", "IfcFillAreaStyleTiles", "IfcFillStyleSelect", "IfcFilter", "IfcFilterType", "IfcFilterTypeEnum", "IfcFireSuppressionTerminal", "IfcFireSuppressionTerminalType", "IfcFireSuppressionTerminalTypeEnum", "IfcFixedReferenceSweptAreaSolid", "IfcFlowController", "IfcFlowControllerType", "IfcFlowDirectionEnum", "IfcFlowFitting", "IfcFlowFittingType", "IfcFlowInstrument", "IfcFlowInstrumentType", "IfcFlowInstrumentTypeEnum", "IfcFlowMeter", "IfcFlowMeterType", "IfcFlowMeterTypeEnum", "IfcFlowMovingDevice", "IfcFlowMovingDeviceType", "IfcFlowSegment", "IfcFlowSegmentType", "IfcFlowStorageDevice", "IfcFlowStorageDeviceType", "IfcFlowTerminal", "IfcFlowTerminalType", "IfcFlowTreatmentDevice", "IfcFlowTreatmentDeviceType", "IfcFontStyle", "IfcFontVariant", "IfcFontWeight", "IfcFooting", "IfcFootingType", "IfcFootingTypeEnum", "IfcForceMeasure", "IfcFrequencyMeasure", "IfcFurnishingElement", "IfcFurnishingElementType", "IfcFurniture", "IfcFurnitureType", "IfcFurnitureTypeEnum", "IfcGeographicElement", "IfcGeographicElementType", "IfcGeographicElementTypeEnum", "IfcGeometricCurveSet", "IfcGeometricProjectionEnum", "IfcGeometricRepresentationContext", "IfcGeometricRepresentationItem", "IfcGeometricRepresentationSubContext", "IfcGeometricSet", "IfcGeometricSetSelect", "IfcGlobalOrLocalEnum", "IfcGloballyUniqueId", "IfcGrid", "IfcGridAxis", "IfcGridPlacement", "IfcGridPlacementDirectionSelect", "IfcGridTypeEnum", "IfcGroup", "IfcHalfSpaceSolid", "IfcHatchLineDistanceSelect", "IfcHeatExchanger", "IfcHeatExchangerType", "IfcHeatExchangerTypeEnum", "IfcHeatFluxDensityMeasure", "IfcHeatingValueMeasure", "IfcHumidifier", "IfcHumidifierType", "IfcHumidifierTypeEnum", "IfcIShapeProfileDef", "IfcIdentifier", "IfcIlluminanceMeasure", "IfcImageTexture", "IfcIndexedColourMap", "IfcIndexedPolyCurve", "IfcIndexedTextureMap", "IfcIndexedTriangleTextureMap", "IfcInductanceMeasure", "IfcInteger", "IfcIntegerCountRateMeasure", "IfcInterceptor", "IfcInterceptorType", "IfcInterceptorTypeEnum", "IfcInternalOrExternalEnum", "IfcInventory", "IfcInventoryTypeEnum", "IfcIonConcentrationMeasure", "IfcIrregularTimeSeries", "IfcIrregularTimeSeriesValue", "IfcIsothermalMoistureCapacityMeasure", "IfcJunctionBox", "IfcJunctionBoxType", "IfcJunctionBoxTypeEnum", "IfcKinematicViscosityMeasure", "IfcKnotType", "IfcLShapeProfileDef", "IfcLabel", "IfcLaborResource", "IfcLaborResourceType", "IfcLaborResourceTypeEnum", "IfcLagTime", "IfcLamp", "IfcLampType", "IfcLampTypeEnum", "IfcLanguageId", "IfcLayerSetDirectionEnum", "IfcLayeredItem", "IfcLengthMeasure", "IfcLibraryInformation", "IfcLibraryReference", "IfcLibrarySelect", "IfcLightDistributionCurveEnum", "IfcLightDistributionData", "IfcLightDistributionDataSourceSelect", "IfcLightEmissionSourceEnum", "IfcLightFixture", "IfcLightFixtureType", "IfcLightFixtureTypeEnum", "IfcLightIntensityDistribution", "IfcLightSource", "IfcLightSourceAmbient", "IfcLightSourceDirectional", "IfcLightSourceGoniometric", "IfcLightSourcePositional", "IfcLightSourceSpot", "IfcLine", "IfcLineIndex", "IfcLinearForceMeasure", "IfcLinearMomentMeasure", "IfcLinearStiffnessMeasure", "IfcLinearVelocityMeasure", "IfcLoadGroupTypeEnum", "IfcLocalPlacement", "IfcLogical", "IfcLogicalOperatorEnum", "IfcLoop", "IfcLuminousFluxMeasure", "IfcLuminousIntensityDistributionMeasure", "IfcLuminousIntensityMeasure", "IfcMagneticFluxDensityMeasure", "IfcMagneticFluxMeasure", "IfcManifoldSolidBrep", "IfcMapConversion", "IfcMappedItem", "IfcMassDensityMeasure", "IfcMassFlowRateMeasure", "IfcMassMeasure", "IfcMassPerLengthMeasure", "IfcMaterial", "IfcMaterialClassificationRelationship", "IfcMaterialConstituent", "IfcMaterialConstituentSet", "IfcMaterialDefinition", "IfcMaterialDefinitionRepresentation", "IfcMaterialLayer", "IfcMaterialLayerSet", "IfcMaterialLayerSetUsage", "IfcMaterialLayerWithOffsets", "IfcMaterialList", "IfcMaterialProfile", "IfcMaterialProfileSet", "IfcMaterialProfileSetUsage", "IfcMaterialProfileSetUsageTapering", "IfcMaterialProfileWithOffsets", "IfcMaterialProperties", "IfcMaterialRelationship", "IfcMaterialSelect", "IfcMaterialUsageDefinition", "IfcMeasureValue", "IfcMeasureWithUnit", "IfcMechanicalFastener", "IfcMechanicalFastenerType", "IfcMechanicalFastenerTypeEnum", "IfcMedicalDevice", "IfcMedicalDeviceType", "IfcMedicalDeviceTypeEnum", "IfcMember", "IfcMemberStandardCase", "IfcMemberType", "IfcMemberTypeEnum", "IfcMetric", "IfcMetricValueSelect", "IfcMirroredProfileDef", "IfcModulusOfElasticityMeasure", "IfcModulusOfLinearSubgradeReactionMeasure", "IfcModulusOfRotationalSubgradeReactionMeasure", "IfcModulusOfRotationalSubgradeReactionSelect", "IfcModulusOfSubgradeReactionMeasure", "IfcModulusOfSubgradeReactionSelect", "IfcModulusOfTranslationalSubgradeReactionSelect", "IfcMoistureDiffusivityMeasure", "IfcMolecularWeightMeasure", "IfcMomentOfInertiaMeasure", "IfcMonetaryMeasure", "IfcMonetaryUnit", "IfcMonthInYearNumber", "IfcMotorConnection", "IfcMotorConnectionType", "IfcMotorConnectionTypeEnum", "IfcNamedUnit", "IfcNonNegativeLengthMeasure", "IfcNormalisedRatioMeasure", "IfcNullStyle", "IfcNumericMeasure", "IfcObject", "IfcObjectDefinition", "IfcObjectPlacement", "IfcObjectReferenceSelect", "IfcObjectTypeEnum", "IfcObjective", "IfcObjectiveEnum", "IfcOccupant", "IfcOccupantTypeEnum", "IfcOffsetCurve2D", "IfcOffsetCurve3D", "IfcOpenShell", "IfcOpeningElement", "IfcOpeningElementTypeEnum", "IfcOpeningStandardCase", "IfcOrganization", "IfcOrganizationRelationship", "IfcOrientedEdge", "IfcOuterBoundaryCurve", "IfcOutlet", "IfcOutletType", "IfcOutletTypeEnum", "IfcOwnerHistory", "IfcPHMeasure", "IfcParameterValue", "IfcParameterizedProfileDef", "IfcPath", "IfcPcurve", "IfcPerformanceHistory", "IfcPerformanceHistoryTypeEnum", "IfcPermeableCoveringOperationEnum", "IfcPermeableCoveringProperties", "IfcPermit", "IfcPermitTypeEnum", "IfcPerson", "IfcPersonAndOrganization", "IfcPhysicalComplexQuantity", "IfcPhysicalOrVirtualEnum", "IfcPhysicalQuantity", "IfcPhysicalSimpleQuantity", "IfcPile", "IfcPileConstructionEnum", "IfcPileType", "IfcPileTypeEnum", "IfcPipeFitting", "IfcPipeFittingType", "IfcPipeFittingTypeEnum", "IfcPipeSegment", "IfcPipeSegmentType", "IfcPipeSegmentTypeEnum", "IfcPixelTexture", "IfcPlacement", "IfcPlanarBox", "IfcPlanarExtent", "IfcPlanarForceMeasure", "IfcPlane", "IfcPlaneAngleMeasure", "IfcPlate", "IfcPlateStandardCase", "IfcPlateType", "IfcPlateTypeEnum", "IfcPoint", "IfcPointOnCurve", "IfcPointOnSurface", "IfcPointOrVertexPoint", "IfcPolyLoop", "IfcPolygonalBoundedHalfSpace", "IfcPolyline", "IfcPort", "IfcPositiveInteger", "IfcPositiveLengthMeasure", "IfcPositivePlaneAngleMeasure", "IfcPositiveRatioMeasure", "IfcPostalAddress", "IfcPowerMeasure", "IfcPreDefinedColour", "IfcPreDefinedCurveFont", "IfcPreDefinedItem", "IfcPreDefinedProperties", "IfcPreDefinedPropertySet", "IfcPreDefinedTextFont", "IfcPresentableText", "IfcPresentationItem", "IfcPresentationLayerAssignment", "IfcPresentationLayerWithStyle", "IfcPresentationStyle", "IfcPresentationStyleAssignment", "IfcPresentationStyleSelect", "IfcPressureMeasure", "IfcProcedure", "IfcProcedureType", "IfcProcedureTypeEnum", "IfcProcess", "IfcProcessSelect", "IfcProduct", "IfcProductDefinitionShape", "IfcProductRepresentation", "IfcProductRepresentationSelect", "IfcProductSelect", "IfcProfileDef", "IfcProfileProperties", "IfcProfileTypeEnum", "IfcProject", "IfcProjectLibrary", "IfcProjectOrder", "IfcProjectOrderTypeEnum", "IfcProjectedCRS", "IfcProjectedOrTrueLengthEnum", "IfcProjectionElement", "IfcProjectionElementTypeEnum", "IfcProperty", "IfcPropertyAbstraction", "IfcPropertyBoundedValue", "IfcPropertyDefinition", "IfcPropertyDependencyRelationship", "IfcPropertyEnumeratedValue", "IfcPropertyEnumeration", "IfcPropertyListValue", "IfcPropertyReferenceValue", "IfcPropertySet", "IfcPropertySetDefinition", "IfcPropertySetDefinitionSelect", "IfcPropertySetDefinitionSet", "IfcPropertySetTemplate", "IfcPropertySetTemplateTypeEnum", "IfcPropertySingleValue", "IfcPropertyTableValue", "IfcPropertyTemplate", "IfcPropertyTemplateDefinition", "IfcProtectiveDevice", "IfcProtectiveDeviceTrippingUnit", "IfcProtectiveDeviceTrippingUnitType", "IfcProtectiveDeviceTrippingUnitTypeEnum", "IfcProtectiveDeviceType", "IfcProtectiveDeviceTypeEnum", "IfcProxy", "IfcPump", "IfcPumpType", "IfcPumpTypeEnum", "IfcQuantityArea", "IfcQuantityCount", "IfcQuantityLength", "IfcQuantitySet", "IfcQuantityTime", "IfcQuantityVolume", "IfcQuantityWeight", "IfcRadioActivityMeasure", "IfcRailing", "IfcRailingType", "IfcRailingTypeEnum", "IfcRamp", "IfcRampFlight", "IfcRampFlightType", "IfcRampFlightTypeEnum", "IfcRampType", "IfcRampTypeEnum", "IfcRatioMeasure", "IfcRationalBSplineCurveWithKnots", "IfcRationalBSplineSurfaceWithKnots", "IfcReal", "IfcRectangleHollowProfileDef", "IfcRectangleProfileDef", "IfcRectangularPyramid", "IfcRectangularTrimmedSurface", "IfcRecurrencePattern", "IfcRecurrenceTypeEnum", "IfcReference", "IfcReflectanceMethodEnum", "IfcRegularTimeSeries", "IfcReinforcementBarProperties", "IfcReinforcementDefinitionProperties", "IfcReinforcingBar", "IfcReinforcingBarRoleEnum", "IfcReinforcingBarSurfaceEnum", "IfcReinforcingBarType", "IfcReinforcingBarTypeEnum", "IfcReinforcingElement", "IfcReinforcingElementType", "IfcReinforcingMesh", "IfcReinforcingMeshType", "IfcReinforcingMeshTypeEnum", "IfcRelAggregates", "IfcRelAssigns", "IfcRelAssignsToActor", "IfcRelAssignsToControl", "IfcRelAssignsToGroup", "IfcRelAssignsToGroupByFactor", "IfcRelAssignsToProcess", "IfcRelAssignsToProduct", "IfcRelAssignsToResource", "IfcRelAssociates", "IfcRelAssociatesApproval", "IfcRelAssociatesClassification", "IfcRelAssociatesConstraint", "IfcRelAssociatesDocument", "IfcRelAssociatesLibrary", "IfcRelAssociatesMaterial", "IfcRelConnects", "IfcRelConnectsElements", "IfcRelConnectsPathElements", "IfcRelConnectsPortToElement", "IfcRelConnectsPorts", "IfcRelConnectsStructuralActivity", "IfcRelConnectsStructuralMember", "IfcRelConnectsWithEccentricity", "IfcRelConnectsWithRealizingElements", "IfcRelContainedInSpatialStructure", "IfcRelCoversBldgElements", "IfcRelCoversSpaces", "IfcRelDeclares", "IfcRelDecomposes", "IfcRelDefines", "IfcRelDefinesByObject", "IfcRelDefinesByProperties", "IfcRelDefinesByTemplate", "IfcRelDefinesByType", "IfcRelFillsElement", "IfcRelFlowControlElements", "IfcRelInterferesElements", "IfcRelNests", "IfcRelProjectsElement", "IfcRelReferencedInSpatialStructure", "IfcRelSequence", "IfcRelServicesBuildings", "IfcRelSpaceBoundary", "IfcRelSpaceBoundary1stLevel", "IfcRelSpaceBoundary2ndLevel", "IfcRelVoidsElement", "IfcRelationship", "IfcReparametrisedCompositeCurveSegment", "IfcRepresentation", "IfcRepresentationContext", "IfcRepresentationItem", "IfcRepresentationMap", "IfcResource", "IfcResourceApprovalRelationship", "IfcResourceConstraintRelationship", "IfcResourceLevelRelationship", "IfcResourceObjectSelect", "IfcResourceSelect", "IfcResourceTime", "IfcRevolvedAreaSolid", "IfcRevolvedAreaSolidTapered", "IfcRightCircularCone", "IfcRightCircularCylinder", "IfcRoleEnum", "IfcRoof", "IfcRoofType", "IfcRoofTypeEnum", "IfcRoot", "IfcRotationalFrequencyMeasure", "IfcRotationalMassMeasure", "IfcRotationalStiffnessMeasure", "IfcRotationalStiffnessSelect", "IfcRoundedRectangleProfileDef", "IfcSIPrefix", "IfcSIUnit", "IfcSIUnitName", "IfcSanitaryTerminal", "IfcSanitaryTerminalType", "IfcSanitaryTerminalTypeEnum", "IfcSchedulingTime", "IfcSectionModulusMeasure", "IfcSectionProperties", "IfcSectionReinforcementProperties", "IfcSectionTypeEnum", "IfcSectionalAreaIntegralMeasure", "IfcSectionedSpine", "IfcSegmentIndexSelect", "IfcSensor", "IfcSensorType", "IfcSensorTypeEnum", "IfcSequenceEnum", "IfcShadingDevice", "IfcShadingDeviceType", "IfcShadingDeviceTypeEnum", "IfcShapeAspect", "IfcShapeModel", "IfcShapeRepresentation", "IfcShearModulusMeasure", "IfcShell", "IfcShellBasedSurfaceModel", "IfcSimpleProperty", "IfcSimplePropertyTemplate", "IfcSimplePropertyTemplateTypeEnum", "IfcSimpleValue", "IfcSite", "IfcSizeSelect", "IfcSlab", "IfcSlabElementedCase", "IfcSlabStandardCase", "IfcSlabType", "IfcSlabTypeEnum", "IfcSlippageConnectionCondition", "IfcSolarDevice", "IfcSolarDeviceType", "IfcSolarDeviceTypeEnum", "IfcSolidAngleMeasure", "IfcSolidModel", "IfcSolidOrShell", "IfcSoundPowerLevelMeasure", "IfcSoundPowerMeasure", "IfcSoundPressureLevelMeasure", "IfcSoundPressureMeasure", "IfcSpace", "IfcSpaceBoundarySelect", "IfcSpaceHeater", "IfcSpaceHeaterType", "IfcSpaceHeaterTypeEnum", "IfcSpaceType", "IfcSpaceTypeEnum", "IfcSpatialElement", "IfcSpatialElementType", "IfcSpatialStructureElement", "IfcSpatialStructureElementType", "IfcSpatialZone", "IfcSpatialZoneType", "IfcSpatialZoneTypeEnum", "IfcSpecificHeatCapacityMeasure", "IfcSpecularExponent", "IfcSpecularHighlightSelect", "IfcSpecularRoughness", "IfcSphere", "IfcStackTerminal", "IfcStackTerminalType", "IfcStackTerminalTypeEnum", "IfcStair", "IfcStairFlight", "IfcStairFlightType", "IfcStairFlightTypeEnum", "IfcStairType", "IfcStairTypeEnum", "IfcStateEnum", "IfcStrippedOptional", "IfcStructuralAction", "IfcStructuralActivity", "IfcStructuralActivityAssignmentSelect", "IfcStructuralAnalysisModel", "IfcStructuralConnection", "IfcStructuralConnectionCondition", "IfcStructuralCurveAction", "IfcStructuralCurveActivityTypeEnum", "IfcStructuralCurveConnection", "IfcStructuralCurveMember", "IfcStructuralCurveMemberTypeEnum", "IfcStructuralCurveMemberVarying", "IfcStructuralCurveReaction", "IfcStructuralItem", "IfcStructuralLinearAction", "IfcStructuralLoad", "IfcStructuralLoadCase", "IfcStructuralLoadConfiguration", "IfcStructuralLoadGroup", "IfcStructuralLoadLinearForce", "IfcStructuralLoadOrResult", "IfcStructuralLoadPlanarForce", "IfcStructuralLoadSingleDisplacement", "IfcStructuralLoadSingleDisplacementDistortion", "IfcStructuralLoadSingleForce", "IfcStructuralLoadSingleForceWarping", "IfcStructuralLoadStatic", "IfcStructuralLoadTemperature", "IfcStructuralMember", "IfcStructuralPlanarAction", "IfcStructuralPointAction", "IfcStructuralPointConnection", "IfcStructuralPointReaction", "IfcStructuralReaction", "IfcStructuralResultGroup", "IfcStructuralSurfaceAction", "IfcStructuralSurfaceActivityTypeEnum", "IfcStructuralSurfaceConnection", "IfcStructuralSurfaceMember", "IfcStructuralSurfaceMemberTypeEnum", "IfcStructuralSurfaceMemberVarying", "IfcStructuralSurfaceReaction", "IfcStyleAssignmentSelect", "IfcStyleModel", "IfcStyledItem", "IfcStyledRepresentation", "IfcSubContractResource", "IfcSubContractResourceType", "IfcSubContractResourceTypeEnum", "IfcSubedge", "IfcSurface", "IfcSurfaceCurveSweptAreaSolid", "IfcSurfaceFeature", "IfcSurfaceFeatureTypeEnum", "IfcSurfaceOfLinearExtrusion", "IfcSurfaceOfRevolution", "IfcSurfaceOrFaceSurface", "IfcSurfaceReinforcementArea", "IfcSurfaceSide", "IfcSurfaceStyle", "IfcSurfaceStyleElementSelect", "IfcSurfaceStyleLighting", "IfcSurfaceStyleRefraction", "IfcSurfaceStyleRendering", "IfcSurfaceStyleShading", "IfcSurfaceStyleWithTextures", "IfcSurfaceTexture", "IfcSweptAreaSolid", "IfcSweptDiskSolid", "IfcSweptDiskSolidPolygonal", "IfcSweptSurface", "IfcSwitchingDevice", "IfcSwitchingDeviceType", "IfcSwitchingDeviceTypeEnum", "IfcSystem", "IfcSystemFurnitureElement", "IfcSystemFurnitureElementType", "IfcSystemFurnitureElementTypeEnum", "IfcTShapeProfileDef", "IfcTable", "IfcTableColumn", "IfcTableRow", "IfcTank", "IfcTankType", "IfcTankTypeEnum", "IfcTask", "IfcTaskDurationEnum", "IfcTaskTime", "IfcTaskTimeRecurring", "IfcTaskType", "IfcTaskTypeEnum", "IfcTelecomAddress", "IfcTemperatureGradientMeasure", "IfcTemperatureRateOfChangeMeasure", "IfcTendon", "IfcTendonAnchor", "IfcTendonAnchorType", "IfcTendonAnchorTypeEnum", "IfcTendonType", "IfcTendonTypeEnum", "IfcTessellatedFaceSet", "IfcTessellatedItem", "IfcText", "IfcTextAlignment", "IfcTextDecoration", "IfcTextFontName", "IfcTextFontSelect", "IfcTextLiteral", "IfcTextLiteralWithExtent", "IfcTextPath", "IfcTextStyle", "IfcTextStyleFontModel", "IfcTextStyleForDefinedFont", "IfcTextStyleTextModel", "IfcTextTransformation", "IfcTextureCoordinate", "IfcTextureCoordinateGenerator", "IfcTextureMap", "IfcTextureVertex", "IfcTextureVertexList", "IfcThermalAdmittanceMeasure", "IfcThermalConductivityMeasure", "IfcThermalExpansionCoefficientMeasure", "IfcThermalResistanceMeasure", "IfcThermalTransmittanceMeasure", "IfcThermodynamicTemperatureMeasure", "IfcTime", "IfcTimeMeasure", "IfcTimeOrRatioSelect", "IfcTimePeriod", "IfcTimeSeries", "IfcTimeSeriesDataTypeEnum", "IfcTimeSeriesValue", "IfcTimeStamp", "IfcTopologicalRepresentationItem", "IfcTopologyRepresentation", "IfcTorqueMeasure", "IfcTransformer", "IfcTransformerType", "IfcTransformerTypeEnum", "IfcTransitionCode", "IfcTranslationalStiffnessSelect", "IfcTransportElement", "IfcTransportElementType", "IfcTransportElementTypeEnum", "IfcTrapeziumProfileDef", "IfcTriangulatedFaceSet", "IfcTrimmedCurve", "IfcTrimmingPreference", "IfcTrimmingSelect", "IfcTubeBundle", "IfcTubeBundleType", "IfcTubeBundleTypeEnum", "IfcTypeObject", "IfcTypeProcess", "IfcTypeProduct", "IfcTypeResource", "IfcURIReference", "IfcUShapeProfileDef", "IfcUnit", "IfcUnitAssignment", "IfcUnitEnum", "IfcUnitaryControlElement", "IfcUnitaryControlElementType", "IfcUnitaryControlElementTypeEnum", "IfcUnitaryEquipment", "IfcUnitaryEquipmentType", "IfcUnitaryEquipmentTypeEnum", "IfcValue", "IfcValve", "IfcValveType", "IfcValveTypeEnum", "IfcVaporPermeabilityMeasure", "IfcVector", "IfcVectorOrDirection", "IfcVertex", "IfcVertexLoop", "IfcVertexPoint", "IfcVibrationIsolator", "IfcVibrationIsolatorType", "IfcVibrationIsolatorTypeEnum", "IfcVirtualElement", "IfcVirtualGridIntersection", "IfcVoidingFeature", "IfcVoidingFeatureTypeEnum", "IfcVolumeMeasure", "IfcVolumetricFlowRateMeasure", "IfcWall", "IfcWallElementedCase", "IfcWallStandardCase", "IfcWallType", "IfcWallTypeEnum", "IfcWarpingConstantMeasure", "IfcWarpingMomentMeasure", "IfcWarpingStiffnessSelect", "IfcWasteTerminal", "IfcWasteTerminalType", "IfcWasteTerminalTypeEnum", "IfcWindow", "IfcWindowLiningProperties", "IfcWindowPanelOperationEnum", "IfcWindowPanelPositionEnum", "IfcWindowPanelProperties", "IfcWindowStandardCase", "IfcWindowStyle", "IfcWindowStyleConstructionEnum", "IfcWindowStyleOperationEnum", "IfcWindowType", "IfcWindowTypeEnum", "IfcWindowTypePartitioningEnum", "IfcWorkCalendar", "IfcWorkCalendarTypeEnum", "IfcWorkControl", "IfcWorkPlan", "IfcWorkPlanTypeEnum", "IfcWorkSchedule", "IfcWorkScheduleTypeEnum", "IfcWorkTime", "IfcZShapeProfileDef", "IfcZone" }; + if (v < 0 || v >= 1173) throw IfcException("Unable to find find keyword in schema"); + static std::string names[] = { "IfcAbsorbedDoseMeasure", "IfcAccelerationMeasure", "IfcActionRequest", "IfcActionRequestTypeEnum", "IfcActionSourceTypeEnum", "IfcActionTypeEnum", "IfcActor", "IfcActorRole", "IfcActorSelect", "IfcActuator", "IfcActuatorType", "IfcActuatorTypeEnum", "IfcAddress", "IfcAddressTypeEnum", "IfcAdvancedBrep", "IfcAdvancedBrepWithVoids", "IfcAdvancedFace", "IfcAirTerminal", "IfcAirTerminalBox", "IfcAirTerminalBoxType", "IfcAirTerminalBoxTypeEnum", "IfcAirTerminalType", "IfcAirTerminalTypeEnum", "IfcAirToAirHeatRecovery", "IfcAirToAirHeatRecoveryType", "IfcAirToAirHeatRecoveryTypeEnum", "IfcAlarm", "IfcAlarmType", "IfcAlarmTypeEnum", "IfcAmountOfSubstanceMeasure", "IfcAnalysisModelTypeEnum", "IfcAnalysisTheoryTypeEnum", "IfcAngularVelocityMeasure", "IfcAnnotation", "IfcAnnotationFillArea", "IfcApplication", "IfcAppliedValue", "IfcAppliedValueSelect", "IfcApproval", "IfcApprovalRelationship", "IfcArbitraryClosedProfileDef", "IfcArbitraryOpenProfileDef", "IfcArbitraryProfileDefWithVoids", "IfcArcIndex", "IfcAreaDensityMeasure", "IfcAreaMeasure", "IfcArithmeticOperatorEnum", "IfcAssemblyPlaceEnum", "IfcAsset", "IfcAsymmetricIShapeProfileDef", "IfcAudioVisualAppliance", "IfcAudioVisualApplianceType", "IfcAudioVisualApplianceTypeEnum", "IfcAxis1Placement", "IfcAxis2Placement", "IfcAxis2Placement2D", "IfcAxis2Placement3D", "IfcBSplineCurve", "IfcBSplineCurveForm", "IfcBSplineCurveWithKnots", "IfcBSplineSurface", "IfcBSplineSurfaceForm", "IfcBSplineSurfaceWithKnots", "IfcBeam", "IfcBeamStandardCase", "IfcBeamType", "IfcBeamTypeEnum", "IfcBenchmarkEnum", "IfcBendingParameterSelect", "IfcBinary", "IfcBlobTexture", "IfcBlock", "IfcBoiler", "IfcBoilerType", "IfcBoilerTypeEnum", "IfcBoolean", "IfcBooleanClippingResult", "IfcBooleanOperand", "IfcBooleanOperator", "IfcBooleanResult", "IfcBoundaryCondition", "IfcBoundaryCurve", "IfcBoundaryEdgeCondition", "IfcBoundaryFaceCondition", "IfcBoundaryNodeCondition", "IfcBoundaryNodeConditionWarping", "IfcBoundedCurve", "IfcBoundedSurface", "IfcBoundingBox", "IfcBoxAlignment", "IfcBoxedHalfSpace", "IfcBuilding", "IfcBuildingElement", "IfcBuildingElementPart", "IfcBuildingElementPartType", "IfcBuildingElementPartTypeEnum", "IfcBuildingElementProxy", "IfcBuildingElementProxyType", "IfcBuildingElementProxyTypeEnum", "IfcBuildingElementType", "IfcBuildingStorey", "IfcBuildingSystem", "IfcBuildingSystemTypeEnum", "IfcBurner", "IfcBurnerType", "IfcBurnerTypeEnum", "IfcCShapeProfileDef", "IfcCableCarrierFitting", "IfcCableCarrierFittingType", "IfcCableCarrierFittingTypeEnum", "IfcCableCarrierSegment", "IfcCableCarrierSegmentType", "IfcCableCarrierSegmentTypeEnum", "IfcCableFitting", "IfcCableFittingType", "IfcCableFittingTypeEnum", "IfcCableSegment", "IfcCableSegmentType", "IfcCableSegmentTypeEnum", "IfcCardinalPointReference", "IfcCartesianPoint", "IfcCartesianPointList", "IfcCartesianPointList2D", "IfcCartesianPointList3D", "IfcCartesianTransformationOperator", "IfcCartesianTransformationOperator2D", "IfcCartesianTransformationOperator2DnonUniform", "IfcCartesianTransformationOperator3D", "IfcCartesianTransformationOperator3DnonUniform", "IfcCenterLineProfileDef", "IfcChangeActionEnum", "IfcChiller", "IfcChillerType", "IfcChillerTypeEnum", "IfcChimney", "IfcChimneyType", "IfcChimneyTypeEnum", "IfcCircle", "IfcCircleHollowProfileDef", "IfcCircleProfileDef", "IfcCivilElement", "IfcCivilElementType", "IfcClassification", "IfcClassificationReference", "IfcClassificationReferenceSelect", "IfcClassificationSelect", "IfcClosedShell", "IfcCoil", "IfcCoilType", "IfcCoilTypeEnum", "IfcColour", "IfcColourOrFactor", "IfcColourRgb", "IfcColourRgbList", "IfcColourSpecification", "IfcColumn", "IfcColumnStandardCase", "IfcColumnType", "IfcColumnTypeEnum", "IfcCommunicationsAppliance", "IfcCommunicationsApplianceType", "IfcCommunicationsApplianceTypeEnum", "IfcComplexNumber", "IfcComplexProperty", "IfcComplexPropertyTemplate", "IfcComplexPropertyTemplateTypeEnum", "IfcCompositeCurve", "IfcCompositeCurveOnSurface", "IfcCompositeCurveSegment", "IfcCompositeProfileDef", "IfcCompoundPlaneAngleMeasure", "IfcCompressor", "IfcCompressorType", "IfcCompressorTypeEnum", "IfcCondenser", "IfcCondenserType", "IfcCondenserTypeEnum", "IfcConic", "IfcConnectedFaceSet", "IfcConnectionCurveGeometry", "IfcConnectionGeometry", "IfcConnectionPointEccentricity", "IfcConnectionPointGeometry", "IfcConnectionSurfaceGeometry", "IfcConnectionTypeEnum", "IfcConnectionVolumeGeometry", "IfcConstraint", "IfcConstraintEnum", "IfcConstructionEquipmentResource", "IfcConstructionEquipmentResourceType", "IfcConstructionEquipmentResourceTypeEnum", "IfcConstructionMaterialResource", "IfcConstructionMaterialResourceType", "IfcConstructionMaterialResourceTypeEnum", "IfcConstructionProductResource", "IfcConstructionProductResourceType", "IfcConstructionProductResourceTypeEnum", "IfcConstructionResource", "IfcConstructionResourceType", "IfcContext", "IfcContextDependentMeasure", "IfcContextDependentUnit", "IfcControl", "IfcController", "IfcControllerType", "IfcControllerTypeEnum", "IfcConversionBasedUnit", "IfcConversionBasedUnitWithOffset", "IfcCooledBeam", "IfcCooledBeamType", "IfcCooledBeamTypeEnum", "IfcCoolingTower", "IfcCoolingTowerType", "IfcCoolingTowerTypeEnum", "IfcCoordinateOperation", "IfcCoordinateReferenceSystem", "IfcCoordinateReferenceSystemSelect", "IfcCostItem", "IfcCostItemTypeEnum", "IfcCostSchedule", "IfcCostScheduleTypeEnum", "IfcCostValue", "IfcCountMeasure", "IfcCovering", "IfcCoveringType", "IfcCoveringTypeEnum", "IfcCrewResource", "IfcCrewResourceType", "IfcCrewResourceTypeEnum", "IfcCsgPrimitive3D", "IfcCsgSelect", "IfcCsgSolid", "IfcCurrencyRelationship", "IfcCurtainWall", "IfcCurtainWallType", "IfcCurtainWallTypeEnum", "IfcCurvatureMeasure", "IfcCurve", "IfcCurveBoundedPlane", "IfcCurveBoundedSurface", "IfcCurveFontOrScaledCurveFontSelect", "IfcCurveInterpolationEnum", "IfcCurveOnSurface", "IfcCurveOrEdgeCurve", "IfcCurveStyle", "IfcCurveStyleFont", "IfcCurveStyleFontAndScaling", "IfcCurveStyleFontPattern", "IfcCurveStyleFontSelect", "IfcCylindricalSurface", "IfcDamper", "IfcDamperType", "IfcDamperTypeEnum", "IfcDataOriginEnum", "IfcDate", "IfcDateTime", "IfcDayInMonthNumber", "IfcDayInWeekNumber", "IfcDefinitionSelect", "IfcDerivedMeasureValue", "IfcDerivedProfileDef", "IfcDerivedUnit", "IfcDerivedUnitElement", "IfcDerivedUnitEnum", "IfcDescriptiveMeasure", "IfcDimensionCount", "IfcDimensionalExponents", "IfcDirection", "IfcDirectionSenseEnum", "IfcDiscreteAccessory", "IfcDiscreteAccessoryType", "IfcDiscreteAccessoryTypeEnum", "IfcDistributionChamberElement", "IfcDistributionChamberElementType", "IfcDistributionChamberElementTypeEnum", "IfcDistributionCircuit", "IfcDistributionControlElement", "IfcDistributionControlElementType", "IfcDistributionElement", "IfcDistributionElementType", "IfcDistributionFlowElement", "IfcDistributionFlowElementType", "IfcDistributionPort", "IfcDistributionPortTypeEnum", "IfcDistributionSystem", "IfcDistributionSystemEnum", "IfcDocumentConfidentialityEnum", "IfcDocumentInformation", "IfcDocumentInformationRelationship", "IfcDocumentReference", "IfcDocumentSelect", "IfcDocumentStatusEnum", "IfcDoor", "IfcDoorLiningProperties", "IfcDoorPanelOperationEnum", "IfcDoorPanelPositionEnum", "IfcDoorPanelProperties", "IfcDoorStandardCase", "IfcDoorStyle", "IfcDoorStyleConstructionEnum", "IfcDoorStyleOperationEnum", "IfcDoorType", "IfcDoorTypeEnum", "IfcDoorTypeOperationEnum", "IfcDoseEquivalentMeasure", "IfcDraughtingPreDefinedColour", "IfcDraughtingPreDefinedCurveFont", "IfcDuctFitting", "IfcDuctFittingType", "IfcDuctFittingTypeEnum", "IfcDuctSegment", "IfcDuctSegmentType", "IfcDuctSegmentTypeEnum", "IfcDuctSilencer", "IfcDuctSilencerType", "IfcDuctSilencerTypeEnum", "IfcDuration", "IfcDynamicViscosityMeasure", "IfcEdge", "IfcEdgeCurve", "IfcEdgeLoop", "IfcElectricAppliance", "IfcElectricApplianceType", "IfcElectricApplianceTypeEnum", "IfcElectricCapacitanceMeasure", "IfcElectricChargeMeasure", "IfcElectricConductanceMeasure", "IfcElectricCurrentMeasure", "IfcElectricDistributionBoard", "IfcElectricDistributionBoardType", "IfcElectricDistributionBoardTypeEnum", "IfcElectricFlowStorageDevice", "IfcElectricFlowStorageDeviceType", "IfcElectricFlowStorageDeviceTypeEnum", "IfcElectricGenerator", "IfcElectricGeneratorType", "IfcElectricGeneratorTypeEnum", "IfcElectricMotor", "IfcElectricMotorType", "IfcElectricMotorTypeEnum", "IfcElectricResistanceMeasure", "IfcElectricTimeControl", "IfcElectricTimeControlType", "IfcElectricTimeControlTypeEnum", "IfcElectricVoltageMeasure", "IfcElement", "IfcElementAssembly", "IfcElementAssemblyType", "IfcElementAssemblyTypeEnum", "IfcElementComponent", "IfcElementComponentType", "IfcElementCompositionEnum", "IfcElementQuantity", "IfcElementType", "IfcElementarySurface", "IfcEllipse", "IfcEllipseProfileDef", "IfcEnergyConversionDevice", "IfcEnergyConversionDeviceType", "IfcEnergyMeasure", "IfcEngine", "IfcEngineType", "IfcEngineTypeEnum", "IfcEvaporativeCooler", "IfcEvaporativeCoolerType", "IfcEvaporativeCoolerTypeEnum", "IfcEvaporator", "IfcEvaporatorType", "IfcEvaporatorTypeEnum", "IfcEvent", "IfcEventTime", "IfcEventTriggerTypeEnum", "IfcEventType", "IfcEventTypeEnum", "IfcExtendedProperties", "IfcExternalInformation", "IfcExternalReference", "IfcExternalReferenceRelationship", "IfcExternalSpatialElement", "IfcExternalSpatialElementTypeEnum", "IfcExternalSpatialStructureElement", "IfcExternallyDefinedHatchStyle", "IfcExternallyDefinedSurfaceStyle", "IfcExternallyDefinedTextFont", "IfcExtrudedAreaSolid", "IfcExtrudedAreaSolidTapered", "IfcFace", "IfcFaceBasedSurfaceModel", "IfcFaceBound", "IfcFaceOuterBound", "IfcFaceSurface", "IfcFacetedBrep", "IfcFacetedBrepWithVoids", "IfcFailureConnectionCondition", "IfcFan", "IfcFanType", "IfcFanTypeEnum", "IfcFastener", "IfcFastenerType", "IfcFastenerTypeEnum", "IfcFeatureElement", "IfcFeatureElementAddition", "IfcFeatureElementSubtraction", "IfcFillAreaStyle", "IfcFillAreaStyleHatching", "IfcFillAreaStyleTiles", "IfcFillStyleSelect", "IfcFilter", "IfcFilterType", "IfcFilterTypeEnum", "IfcFireSuppressionTerminal", "IfcFireSuppressionTerminalType", "IfcFireSuppressionTerminalTypeEnum", "IfcFixedReferenceSweptAreaSolid", "IfcFlowController", "IfcFlowControllerType", "IfcFlowDirectionEnum", "IfcFlowFitting", "IfcFlowFittingType", "IfcFlowInstrument", "IfcFlowInstrumentType", "IfcFlowInstrumentTypeEnum", "IfcFlowMeter", "IfcFlowMeterType", "IfcFlowMeterTypeEnum", "IfcFlowMovingDevice", "IfcFlowMovingDeviceType", "IfcFlowSegment", "IfcFlowSegmentType", "IfcFlowStorageDevice", "IfcFlowStorageDeviceType", "IfcFlowTerminal", "IfcFlowTerminalType", "IfcFlowTreatmentDevice", "IfcFlowTreatmentDeviceType", "IfcFontStyle", "IfcFontVariant", "IfcFontWeight", "IfcFooting", "IfcFootingType", "IfcFootingTypeEnum", "IfcForceMeasure", "IfcFrequencyMeasure", "IfcFurnishingElement", "IfcFurnishingElementType", "IfcFurniture", "IfcFurnitureType", "IfcFurnitureTypeEnum", "IfcGeographicElement", "IfcGeographicElementType", "IfcGeographicElementTypeEnum", "IfcGeometricCurveSet", "IfcGeometricProjectionEnum", "IfcGeometricRepresentationContext", "IfcGeometricRepresentationItem", "IfcGeometricRepresentationSubContext", "IfcGeometricSet", "IfcGeometricSetSelect", "IfcGlobalOrLocalEnum", "IfcGloballyUniqueId", "IfcGrid", "IfcGridAxis", "IfcGridPlacement", "IfcGridPlacementDirectionSelect", "IfcGridTypeEnum", "IfcGroup", "IfcHalfSpaceSolid", "IfcHatchLineDistanceSelect", "IfcHeatExchanger", "IfcHeatExchangerType", "IfcHeatExchangerTypeEnum", "IfcHeatFluxDensityMeasure", "IfcHeatingValueMeasure", "IfcHumidifier", "IfcHumidifierType", "IfcHumidifierTypeEnum", "IfcIShapeProfileDef", "IfcIdentifier", "IfcIlluminanceMeasure", "IfcImageTexture", "IfcIndexedColourMap", "IfcIndexedPolyCurve", "IfcIndexedPolygonalFace", "IfcIndexedPolygonalFaceWithVoids", "IfcIndexedTextureMap", "IfcIndexedTriangleTextureMap", "IfcInductanceMeasure", "IfcInteger", "IfcIntegerCountRateMeasure", "IfcInterceptor", "IfcInterceptorType", "IfcInterceptorTypeEnum", "IfcInternalOrExternalEnum", "IfcIntersectionCurve", "IfcInventory", "IfcInventoryTypeEnum", "IfcIonConcentrationMeasure", "IfcIrregularTimeSeries", "IfcIrregularTimeSeriesValue", "IfcIsothermalMoistureCapacityMeasure", "IfcJunctionBox", "IfcJunctionBoxType", "IfcJunctionBoxTypeEnum", "IfcKinematicViscosityMeasure", "IfcKnotType", "IfcLShapeProfileDef", "IfcLabel", "IfcLaborResource", "IfcLaborResourceType", "IfcLaborResourceTypeEnum", "IfcLagTime", "IfcLamp", "IfcLampType", "IfcLampTypeEnum", "IfcLanguageId", "IfcLayerSetDirectionEnum", "IfcLayeredItem", "IfcLengthMeasure", "IfcLibraryInformation", "IfcLibraryReference", "IfcLibrarySelect", "IfcLightDistributionCurveEnum", "IfcLightDistributionData", "IfcLightDistributionDataSourceSelect", "IfcLightEmissionSourceEnum", "IfcLightFixture", "IfcLightFixtureType", "IfcLightFixtureTypeEnum", "IfcLightIntensityDistribution", "IfcLightSource", "IfcLightSourceAmbient", "IfcLightSourceDirectional", "IfcLightSourceGoniometric", "IfcLightSourcePositional", "IfcLightSourceSpot", "IfcLine", "IfcLineIndex", "IfcLinearForceMeasure", "IfcLinearMomentMeasure", "IfcLinearStiffnessMeasure", "IfcLinearVelocityMeasure", "IfcLoadGroupTypeEnum", "IfcLocalPlacement", "IfcLogical", "IfcLogicalOperatorEnum", "IfcLoop", "IfcLuminousFluxMeasure", "IfcLuminousIntensityDistributionMeasure", "IfcLuminousIntensityMeasure", "IfcMagneticFluxDensityMeasure", "IfcMagneticFluxMeasure", "IfcManifoldSolidBrep", "IfcMapConversion", "IfcMappedItem", "IfcMassDensityMeasure", "IfcMassFlowRateMeasure", "IfcMassMeasure", "IfcMassPerLengthMeasure", "IfcMaterial", "IfcMaterialClassificationRelationship", "IfcMaterialConstituent", "IfcMaterialConstituentSet", "IfcMaterialDefinition", "IfcMaterialDefinitionRepresentation", "IfcMaterialLayer", "IfcMaterialLayerSet", "IfcMaterialLayerSetUsage", "IfcMaterialLayerWithOffsets", "IfcMaterialList", "IfcMaterialProfile", "IfcMaterialProfileSet", "IfcMaterialProfileSetUsage", "IfcMaterialProfileSetUsageTapering", "IfcMaterialProfileWithOffsets", "IfcMaterialProperties", "IfcMaterialRelationship", "IfcMaterialSelect", "IfcMaterialUsageDefinition", "IfcMeasureValue", "IfcMeasureWithUnit", "IfcMechanicalFastener", "IfcMechanicalFastenerType", "IfcMechanicalFastenerTypeEnum", "IfcMedicalDevice", "IfcMedicalDeviceType", "IfcMedicalDeviceTypeEnum", "IfcMember", "IfcMemberStandardCase", "IfcMemberType", "IfcMemberTypeEnum", "IfcMetric", "IfcMetricValueSelect", "IfcMirroredProfileDef", "IfcModulusOfElasticityMeasure", "IfcModulusOfLinearSubgradeReactionMeasure", "IfcModulusOfRotationalSubgradeReactionMeasure", "IfcModulusOfRotationalSubgradeReactionSelect", "IfcModulusOfSubgradeReactionMeasure", "IfcModulusOfSubgradeReactionSelect", "IfcModulusOfTranslationalSubgradeReactionSelect", "IfcMoistureDiffusivityMeasure", "IfcMolecularWeightMeasure", "IfcMomentOfInertiaMeasure", "IfcMonetaryMeasure", "IfcMonetaryUnit", "IfcMonthInYearNumber", "IfcMotorConnection", "IfcMotorConnectionType", "IfcMotorConnectionTypeEnum", "IfcNamedUnit", "IfcNonNegativeLengthMeasure", "IfcNormalisedRatioMeasure", "IfcNullStyle", "IfcNumericMeasure", "IfcObject", "IfcObjectDefinition", "IfcObjectPlacement", "IfcObjectReferenceSelect", "IfcObjectTypeEnum", "IfcObjective", "IfcObjectiveEnum", "IfcOccupant", "IfcOccupantTypeEnum", "IfcOffsetCurve2D", "IfcOffsetCurve3D", "IfcOpenShell", "IfcOpeningElement", "IfcOpeningElementTypeEnum", "IfcOpeningStandardCase", "IfcOrganization", "IfcOrganizationRelationship", "IfcOrientedEdge", "IfcOuterBoundaryCurve", "IfcOutlet", "IfcOutletType", "IfcOutletTypeEnum", "IfcOwnerHistory", "IfcPHMeasure", "IfcParameterValue", "IfcParameterizedProfileDef", "IfcPath", "IfcPcurve", "IfcPerformanceHistory", "IfcPerformanceHistoryTypeEnum", "IfcPermeableCoveringOperationEnum", "IfcPermeableCoveringProperties", "IfcPermit", "IfcPermitTypeEnum", "IfcPerson", "IfcPersonAndOrganization", "IfcPhysicalComplexQuantity", "IfcPhysicalOrVirtualEnum", "IfcPhysicalQuantity", "IfcPhysicalSimpleQuantity", "IfcPile", "IfcPileConstructionEnum", "IfcPileType", "IfcPileTypeEnum", "IfcPipeFitting", "IfcPipeFittingType", "IfcPipeFittingTypeEnum", "IfcPipeSegment", "IfcPipeSegmentType", "IfcPipeSegmentTypeEnum", "IfcPixelTexture", "IfcPlacement", "IfcPlanarBox", "IfcPlanarExtent", "IfcPlanarForceMeasure", "IfcPlane", "IfcPlaneAngleMeasure", "IfcPlate", "IfcPlateStandardCase", "IfcPlateType", "IfcPlateTypeEnum", "IfcPoint", "IfcPointOnCurve", "IfcPointOnSurface", "IfcPointOrVertexPoint", "IfcPolyLoop", "IfcPolygonalBoundedHalfSpace", "IfcPolygonalFaceSet", "IfcPolyline", "IfcPort", "IfcPositiveInteger", "IfcPositiveLengthMeasure", "IfcPositivePlaneAngleMeasure", "IfcPositiveRatioMeasure", "IfcPostalAddress", "IfcPowerMeasure", "IfcPreDefinedColour", "IfcPreDefinedCurveFont", "IfcPreDefinedItem", "IfcPreDefinedProperties", "IfcPreDefinedPropertySet", "IfcPreDefinedTextFont", "IfcPreferredSurfaceCurveRepresentation", "IfcPresentableText", "IfcPresentationItem", "IfcPresentationLayerAssignment", "IfcPresentationLayerWithStyle", "IfcPresentationStyle", "IfcPresentationStyleAssignment", "IfcPresentationStyleSelect", "IfcPressureMeasure", "IfcProcedure", "IfcProcedureType", "IfcProcedureTypeEnum", "IfcProcess", "IfcProcessSelect", "IfcProduct", "IfcProductDefinitionShape", "IfcProductRepresentation", "IfcProductRepresentationSelect", "IfcProductSelect", "IfcProfileDef", "IfcProfileProperties", "IfcProfileTypeEnum", "IfcProject", "IfcProjectLibrary", "IfcProjectOrder", "IfcProjectOrderTypeEnum", "IfcProjectedCRS", "IfcProjectedOrTrueLengthEnum", "IfcProjectionElement", "IfcProjectionElementTypeEnum", "IfcProperty", "IfcPropertyAbstraction", "IfcPropertyBoundedValue", "IfcPropertyDefinition", "IfcPropertyDependencyRelationship", "IfcPropertyEnumeratedValue", "IfcPropertyEnumeration", "IfcPropertyListValue", "IfcPropertyReferenceValue", "IfcPropertySet", "IfcPropertySetDefinition", "IfcPropertySetDefinitionSelect", "IfcPropertySetDefinitionSet", "IfcPropertySetTemplate", "IfcPropertySetTemplateTypeEnum", "IfcPropertySingleValue", "IfcPropertyTableValue", "IfcPropertyTemplate", "IfcPropertyTemplateDefinition", "IfcProtectiveDevice", "IfcProtectiveDeviceTrippingUnit", "IfcProtectiveDeviceTrippingUnitType", "IfcProtectiveDeviceTrippingUnitTypeEnum", "IfcProtectiveDeviceType", "IfcProtectiveDeviceTypeEnum", "IfcProxy", "IfcPump", "IfcPumpType", "IfcPumpTypeEnum", "IfcQuantityArea", "IfcQuantityCount", "IfcQuantityLength", "IfcQuantitySet", "IfcQuantityTime", "IfcQuantityVolume", "IfcQuantityWeight", "IfcRadioActivityMeasure", "IfcRailing", "IfcRailingType", "IfcRailingTypeEnum", "IfcRamp", "IfcRampFlight", "IfcRampFlightType", "IfcRampFlightTypeEnum", "IfcRampType", "IfcRampTypeEnum", "IfcRatioMeasure", "IfcRationalBSplineCurveWithKnots", "IfcRationalBSplineSurfaceWithKnots", "IfcReal", "IfcRectangleHollowProfileDef", "IfcRectangleProfileDef", "IfcRectangularPyramid", "IfcRectangularTrimmedSurface", "IfcRecurrencePattern", "IfcRecurrenceTypeEnum", "IfcReference", "IfcReflectanceMethodEnum", "IfcRegularTimeSeries", "IfcReinforcementBarProperties", "IfcReinforcementDefinitionProperties", "IfcReinforcingBar", "IfcReinforcingBarRoleEnum", "IfcReinforcingBarSurfaceEnum", "IfcReinforcingBarType", "IfcReinforcingBarTypeEnum", "IfcReinforcingElement", "IfcReinforcingElementType", "IfcReinforcingMesh", "IfcReinforcingMeshType", "IfcReinforcingMeshTypeEnum", "IfcRelAggregates", "IfcRelAssigns", "IfcRelAssignsToActor", "IfcRelAssignsToControl", "IfcRelAssignsToGroup", "IfcRelAssignsToGroupByFactor", "IfcRelAssignsToProcess", "IfcRelAssignsToProduct", "IfcRelAssignsToResource", "IfcRelAssociates", "IfcRelAssociatesApproval", "IfcRelAssociatesClassification", "IfcRelAssociatesConstraint", "IfcRelAssociatesDocument", "IfcRelAssociatesLibrary", "IfcRelAssociatesMaterial", "IfcRelConnects", "IfcRelConnectsElements", "IfcRelConnectsPathElements", "IfcRelConnectsPortToElement", "IfcRelConnectsPorts", "IfcRelConnectsStructuralActivity", "IfcRelConnectsStructuralMember", "IfcRelConnectsWithEccentricity", "IfcRelConnectsWithRealizingElements", "IfcRelContainedInSpatialStructure", "IfcRelCoversBldgElements", "IfcRelCoversSpaces", "IfcRelDeclares", "IfcRelDecomposes", "IfcRelDefines", "IfcRelDefinesByObject", "IfcRelDefinesByProperties", "IfcRelDefinesByTemplate", "IfcRelDefinesByType", "IfcRelFillsElement", "IfcRelFlowControlElements", "IfcRelInterferesElements", "IfcRelNests", "IfcRelProjectsElement", "IfcRelReferencedInSpatialStructure", "IfcRelSequence", "IfcRelServicesBuildings", "IfcRelSpaceBoundary", "IfcRelSpaceBoundary1stLevel", "IfcRelSpaceBoundary2ndLevel", "IfcRelVoidsElement", "IfcRelationship", "IfcReparametrisedCompositeCurveSegment", "IfcRepresentation", "IfcRepresentationContext", "IfcRepresentationItem", "IfcRepresentationMap", "IfcResource", "IfcResourceApprovalRelationship", "IfcResourceConstraintRelationship", "IfcResourceLevelRelationship", "IfcResourceObjectSelect", "IfcResourceSelect", "IfcResourceTime", "IfcRevolvedAreaSolid", "IfcRevolvedAreaSolidTapered", "IfcRightCircularCone", "IfcRightCircularCylinder", "IfcRoleEnum", "IfcRoof", "IfcRoofType", "IfcRoofTypeEnum", "IfcRoot", "IfcRotationalFrequencyMeasure", "IfcRotationalMassMeasure", "IfcRotationalStiffnessMeasure", "IfcRotationalStiffnessSelect", "IfcRoundedRectangleProfileDef", "IfcSIPrefix", "IfcSIUnit", "IfcSIUnitName", "IfcSanitaryTerminal", "IfcSanitaryTerminalType", "IfcSanitaryTerminalTypeEnum", "IfcSchedulingTime", "IfcSeamCurve", "IfcSectionModulusMeasure", "IfcSectionProperties", "IfcSectionReinforcementProperties", "IfcSectionTypeEnum", "IfcSectionalAreaIntegralMeasure", "IfcSectionedSpine", "IfcSegmentIndexSelect", "IfcSensor", "IfcSensorType", "IfcSensorTypeEnum", "IfcSequenceEnum", "IfcShadingDevice", "IfcShadingDeviceType", "IfcShadingDeviceTypeEnum", "IfcShapeAspect", "IfcShapeModel", "IfcShapeRepresentation", "IfcShearModulusMeasure", "IfcShell", "IfcShellBasedSurfaceModel", "IfcSimpleProperty", "IfcSimplePropertyTemplate", "IfcSimplePropertyTemplateTypeEnum", "IfcSimpleValue", "IfcSite", "IfcSizeSelect", "IfcSlab", "IfcSlabElementedCase", "IfcSlabStandardCase", "IfcSlabType", "IfcSlabTypeEnum", "IfcSlippageConnectionCondition", "IfcSolarDevice", "IfcSolarDeviceType", "IfcSolarDeviceTypeEnum", "IfcSolidAngleMeasure", "IfcSolidModel", "IfcSolidOrShell", "IfcSoundPowerLevelMeasure", "IfcSoundPowerMeasure", "IfcSoundPressureLevelMeasure", "IfcSoundPressureMeasure", "IfcSpace", "IfcSpaceBoundarySelect", "IfcSpaceHeater", "IfcSpaceHeaterType", "IfcSpaceHeaterTypeEnum", "IfcSpaceType", "IfcSpaceTypeEnum", "IfcSpatialElement", "IfcSpatialElementType", "IfcSpatialStructureElement", "IfcSpatialStructureElementType", "IfcSpatialZone", "IfcSpatialZoneType", "IfcSpatialZoneTypeEnum", "IfcSpecificHeatCapacityMeasure", "IfcSpecularExponent", "IfcSpecularHighlightSelect", "IfcSpecularRoughness", "IfcSphere", "IfcSphericalSurface", "IfcStackTerminal", "IfcStackTerminalType", "IfcStackTerminalTypeEnum", "IfcStair", "IfcStairFlight", "IfcStairFlightType", "IfcStairFlightTypeEnum", "IfcStairType", "IfcStairTypeEnum", "IfcStateEnum", "IfcStructuralAction", "IfcStructuralActivity", "IfcStructuralActivityAssignmentSelect", "IfcStructuralAnalysisModel", "IfcStructuralConnection", "IfcStructuralConnectionCondition", "IfcStructuralCurveAction", "IfcStructuralCurveActivityTypeEnum", "IfcStructuralCurveConnection", "IfcStructuralCurveMember", "IfcStructuralCurveMemberTypeEnum", "IfcStructuralCurveMemberVarying", "IfcStructuralCurveReaction", "IfcStructuralItem", "IfcStructuralLinearAction", "IfcStructuralLoad", "IfcStructuralLoadCase", "IfcStructuralLoadConfiguration", "IfcStructuralLoadGroup", "IfcStructuralLoadLinearForce", "IfcStructuralLoadOrResult", "IfcStructuralLoadPlanarForce", "IfcStructuralLoadSingleDisplacement", "IfcStructuralLoadSingleDisplacementDistortion", "IfcStructuralLoadSingleForce", "IfcStructuralLoadSingleForceWarping", "IfcStructuralLoadStatic", "IfcStructuralLoadTemperature", "IfcStructuralMember", "IfcStructuralPlanarAction", "IfcStructuralPointAction", "IfcStructuralPointConnection", "IfcStructuralPointReaction", "IfcStructuralReaction", "IfcStructuralResultGroup", "IfcStructuralSurfaceAction", "IfcStructuralSurfaceActivityTypeEnum", "IfcStructuralSurfaceConnection", "IfcStructuralSurfaceMember", "IfcStructuralSurfaceMemberTypeEnum", "IfcStructuralSurfaceMemberVarying", "IfcStructuralSurfaceReaction", "IfcStyleAssignmentSelect", "IfcStyleModel", "IfcStyledItem", "IfcStyledRepresentation", "IfcSubContractResource", "IfcSubContractResourceType", "IfcSubContractResourceTypeEnum", "IfcSubedge", "IfcSurface", "IfcSurfaceCurve", "IfcSurfaceCurveSweptAreaSolid", "IfcSurfaceFeature", "IfcSurfaceFeatureTypeEnum", "IfcSurfaceOfLinearExtrusion", "IfcSurfaceOfRevolution", "IfcSurfaceOrFaceSurface", "IfcSurfaceReinforcementArea", "IfcSurfaceSide", "IfcSurfaceStyle", "IfcSurfaceStyleElementSelect", "IfcSurfaceStyleLighting", "IfcSurfaceStyleRefraction", "IfcSurfaceStyleRendering", "IfcSurfaceStyleShading", "IfcSurfaceStyleWithTextures", "IfcSurfaceTexture", "IfcSweptAreaSolid", "IfcSweptDiskSolid", "IfcSweptDiskSolidPolygonal", "IfcSweptSurface", "IfcSwitchingDevice", "IfcSwitchingDeviceType", "IfcSwitchingDeviceTypeEnum", "IfcSystem", "IfcSystemFurnitureElement", "IfcSystemFurnitureElementType", "IfcSystemFurnitureElementTypeEnum", "IfcTShapeProfileDef", "IfcTable", "IfcTableColumn", "IfcTableRow", "IfcTank", "IfcTankType", "IfcTankTypeEnum", "IfcTask", "IfcTaskDurationEnum", "IfcTaskTime", "IfcTaskTimeRecurring", "IfcTaskType", "IfcTaskTypeEnum", "IfcTelecomAddress", "IfcTemperatureGradientMeasure", "IfcTemperatureRateOfChangeMeasure", "IfcTendon", "IfcTendonAnchor", "IfcTendonAnchorType", "IfcTendonAnchorTypeEnum", "IfcTendonType", "IfcTendonTypeEnum", "IfcTessellatedFaceSet", "IfcTessellatedItem", "IfcText", "IfcTextAlignment", "IfcTextDecoration", "IfcTextFontName", "IfcTextFontSelect", "IfcTextLiteral", "IfcTextLiteralWithExtent", "IfcTextPath", "IfcTextStyle", "IfcTextStyleFontModel", "IfcTextStyleForDefinedFont", "IfcTextStyleTextModel", "IfcTextTransformation", "IfcTextureCoordinate", "IfcTextureCoordinateGenerator", "IfcTextureMap", "IfcTextureVertex", "IfcTextureVertexList", "IfcThermalAdmittanceMeasure", "IfcThermalConductivityMeasure", "IfcThermalExpansionCoefficientMeasure", "IfcThermalResistanceMeasure", "IfcThermalTransmittanceMeasure", "IfcThermodynamicTemperatureMeasure", "IfcTime", "IfcTimeMeasure", "IfcTimeOrRatioSelect", "IfcTimePeriod", "IfcTimeSeries", "IfcTimeSeriesDataTypeEnum", "IfcTimeSeriesValue", "IfcTimeStamp", "IfcTopologicalRepresentationItem", "IfcTopologyRepresentation", "IfcToroidalSurface", "IfcTorqueMeasure", "IfcTransformer", "IfcTransformerType", "IfcTransformerTypeEnum", "IfcTransitionCode", "IfcTranslationalStiffnessSelect", "IfcTransportElement", "IfcTransportElementType", "IfcTransportElementTypeEnum", "IfcTrapeziumProfileDef", "IfcTriangulatedFaceSet", "IfcTrimmedCurve", "IfcTrimmingPreference", "IfcTrimmingSelect", "IfcTubeBundle", "IfcTubeBundleType", "IfcTubeBundleTypeEnum", "IfcTypeObject", "IfcTypeProcess", "IfcTypeProduct", "IfcTypeResource", "IfcURIReference", "IfcUShapeProfileDef", "IfcUnit", "IfcUnitAssignment", "IfcUnitEnum", "IfcUnitaryControlElement", "IfcUnitaryControlElementType", "IfcUnitaryControlElementTypeEnum", "IfcUnitaryEquipment", "IfcUnitaryEquipmentType", "IfcUnitaryEquipmentTypeEnum", "IfcValue", "IfcValve", "IfcValveType", "IfcValveTypeEnum", "IfcVaporPermeabilityMeasure", "IfcVector", "IfcVectorOrDirection", "IfcVertex", "IfcVertexLoop", "IfcVertexPoint", "IfcVibrationIsolator", "IfcVibrationIsolatorType", "IfcVibrationIsolatorTypeEnum", "IfcVirtualElement", "IfcVirtualGridIntersection", "IfcVoidingFeature", "IfcVoidingFeatureTypeEnum", "IfcVolumeMeasure", "IfcVolumetricFlowRateMeasure", "IfcWall", "IfcWallElementedCase", "IfcWallStandardCase", "IfcWallType", "IfcWallTypeEnum", "IfcWarpingConstantMeasure", "IfcWarpingMomentMeasure", "IfcWarpingStiffnessSelect", "IfcWasteTerminal", "IfcWasteTerminalType", "IfcWasteTerminalTypeEnum", "IfcWindow", "IfcWindowLiningProperties", "IfcWindowPanelOperationEnum", "IfcWindowPanelPositionEnum", "IfcWindowPanelProperties", "IfcWindowStandardCase", "IfcWindowStyle", "IfcWindowStyleConstructionEnum", "IfcWindowStyleOperationEnum", "IfcWindowType", "IfcWindowTypeEnum", "IfcWindowTypePartitioningEnum", "IfcWorkCalendar", "IfcWorkCalendarTypeEnum", "IfcWorkControl", "IfcWorkPlan", "IfcWorkPlanTypeEnum", "IfcWorkSchedule", "IfcWorkScheduleTypeEnum", "IfcWorkTime", "IfcZShapeProfileDef", "IfcZone" }; return names[v]; } @@ -1431,6 +1438,8 @@ void Ifc4::InitStringMap() { string_map["IFCIMAGETEXTURE" ] = Type::IfcImageTexture; string_map["IFCINDEXEDCOLOURMAP" ] = Type::IfcIndexedColourMap; string_map["IFCINDEXEDPOLYCURVE" ] = Type::IfcIndexedPolyCurve; + string_map["IFCINDEXEDPOLYGONALFACE" ] = Type::IfcIndexedPolygonalFace; + string_map["IFCINDEXEDPOLYGONALFACEWITHVOIDS" ] = Type::IfcIndexedPolygonalFaceWithVoids; string_map["IFCINDEXEDTEXTUREMAP" ] = Type::IfcIndexedTextureMap; string_map["IFCINDEXEDTRIANGLETEXTUREMAP" ] = Type::IfcIndexedTriangleTextureMap; string_map["IFCINDUCTANCEMEASURE" ] = Type::IfcInductanceMeasure; @@ -1440,6 +1449,7 @@ void Ifc4::InitStringMap() { string_map["IFCINTERCEPTORTYPE" ] = Type::IfcInterceptorType; string_map["IFCINTERCEPTORTYPEENUM" ] = Type::IfcInterceptorTypeEnum; string_map["IFCINTERNALOREXTERNALENUM" ] = Type::IfcInternalOrExternalEnum; + string_map["IFCINTERSECTIONCURVE" ] = Type::IfcIntersectionCurve; string_map["IFCINVENTORY" ] = Type::IfcInventory; string_map["IFCINVENTORYTYPEENUM" ] = Type::IfcInventoryTypeEnum; string_map["IFCIONCONCENTRATIONMEASURE" ] = Type::IfcIonConcentrationMeasure; @@ -1627,6 +1637,7 @@ void Ifc4::InitStringMap() { string_map["IFCPOINTORVERTEXPOINT" ] = Type::IfcPointOrVertexPoint; string_map["IFCPOLYLOOP" ] = Type::IfcPolyLoop; string_map["IFCPOLYGONALBOUNDEDHALFSPACE" ] = Type::IfcPolygonalBoundedHalfSpace; + string_map["IFCPOLYGONALFACESET" ] = Type::IfcPolygonalFaceSet; string_map["IFCPOLYLINE" ] = Type::IfcPolyline; string_map["IFCPORT" ] = Type::IfcPort; string_map["IFCPOSITIVEINTEGER" ] = Type::IfcPositiveInteger; @@ -1641,6 +1652,7 @@ void Ifc4::InitStringMap() { string_map["IFCPREDEFINEDPROPERTIES" ] = Type::IfcPreDefinedProperties; string_map["IFCPREDEFINEDPROPERTYSET" ] = Type::IfcPreDefinedPropertySet; string_map["IFCPREDEFINEDTEXTFONT" ] = Type::IfcPreDefinedTextFont; + string_map["IFCPREFERREDSURFACECURVEREPRESENTATION" ] = Type::IfcPreferredSurfaceCurveRepresentation; string_map["IFCPRESENTABLETEXT" ] = Type::IfcPresentableText; string_map["IFCPRESENTATIONITEM" ] = Type::IfcPresentationItem; string_map["IFCPRESENTATIONLAYERASSIGNMENT" ] = Type::IfcPresentationLayerAssignment; @@ -1822,6 +1834,7 @@ void Ifc4::InitStringMap() { string_map["IFCSANITARYTERMINALTYPE" ] = Type::IfcSanitaryTerminalType; string_map["IFCSANITARYTERMINALTYPEENUM" ] = Type::IfcSanitaryTerminalTypeEnum; string_map["IFCSCHEDULINGTIME" ] = Type::IfcSchedulingTime; + string_map["IFCSEAMCURVE" ] = Type::IfcSeamCurve; string_map["IFCSECTIONMODULUSMEASURE" ] = Type::IfcSectionModulusMeasure; string_map["IFCSECTIONPROPERTIES" ] = Type::IfcSectionProperties; string_map["IFCSECTIONREINFORCEMENTPROPERTIES" ] = Type::IfcSectionReinforcementProperties; @@ -1883,6 +1896,7 @@ void Ifc4::InitStringMap() { string_map["IFCSPECULARHIGHLIGHTSELECT" ] = Type::IfcSpecularHighlightSelect; string_map["IFCSPECULARROUGHNESS" ] = Type::IfcSpecularRoughness; string_map["IFCSPHERE" ] = Type::IfcSphere; + string_map["IFCSPHERICALSURFACE" ] = Type::IfcSphericalSurface; string_map["IFCSTACKTERMINAL" ] = Type::IfcStackTerminal; string_map["IFCSTACKTERMINALTYPE" ] = Type::IfcStackTerminalType; string_map["IFCSTACKTERMINALTYPEENUM" ] = Type::IfcStackTerminalTypeEnum; @@ -1893,7 +1907,6 @@ void Ifc4::InitStringMap() { string_map["IFCSTAIRTYPE" ] = Type::IfcStairType; string_map["IFCSTAIRTYPEENUM" ] = Type::IfcStairTypeEnum; string_map["IFCSTATEENUM" ] = Type::IfcStateEnum; - string_map["IFCSTRIPPEDOPTIONAL" ] = Type::IfcStrippedOptional; string_map["IFCSTRUCTURALACTION" ] = Type::IfcStructuralAction; string_map["IFCSTRUCTURALACTIVITY" ] = Type::IfcStructuralActivity; string_map["IFCSTRUCTURALACTIVITYASSIGNMENTSELECT" ] = Type::IfcStructuralActivityAssignmentSelect; @@ -1945,6 +1958,7 @@ void Ifc4::InitStringMap() { string_map["IFCSUBCONTRACTRESOURCETYPEENUM" ] = Type::IfcSubContractResourceTypeEnum; string_map["IFCSUBEDGE" ] = Type::IfcSubedge; string_map["IFCSURFACE" ] = Type::IfcSurface; + string_map["IFCSURFACECURVE" ] = Type::IfcSurfaceCurve; string_map["IFCSURFACECURVESWEPTAREASOLID" ] = Type::IfcSurfaceCurveSweptAreaSolid; string_map["IFCSURFACEFEATURE" ] = Type::IfcSurfaceFeature; string_map["IFCSURFACEFEATURETYPEENUM" ] = Type::IfcSurfaceFeatureTypeEnum; @@ -2030,6 +2044,7 @@ void Ifc4::InitStringMap() { string_map["IFCTIMESTAMP" ] = Type::IfcTimeStamp; string_map["IFCTOPOLOGICALREPRESENTATIONITEM" ] = Type::IfcTopologicalRepresentationItem; string_map["IFCTOPOLOGYREPRESENTATION" ] = Type::IfcTopologyRepresentation; + string_map["IFCTOROIDALSURFACE" ] = Type::IfcToroidalSurface; string_map["IFCTORQUEMEASURE" ] = Type::IfcTorqueMeasure; string_map["IFCTRANSFORMER" ] = Type::IfcTransformer; string_map["IFCTRANSFORMERTYPE" ] = Type::IfcTransformerType; @@ -2123,7 +2138,7 @@ Type::Enum Type::FromString(const std::string& s) { else return it->second; } -static int parent_map[] = {-1,-1,202,-1,-1,-1,611,-1,-1,276,277,-1,-1,-1,548,14,390,431,414,415,-1,432,-1,357,358,-1,276,277,-1,-1,-1,-1,-1,705,454,-1,-1,-1,-1,848,710,710,40,-1,-1,-1,-1,-1,465,636,431,432,-1,662,-1,662,662,86,-1,57,87,-1,60,92,63,99,-1,-1,-1,-1,1011,229,357,358,-1,-1,79,-1,-1,454,-1,167,80,80,80,84,237,995,454,-1,466,924,345,349,350,-1,92,99,-1,353,924,1019,-1,357,358,-1,636,417,418,-1,427,428,-1,417,418,-1,427,428,-1,-1,672,454,121,121,454,124,125,124,127,41,-1,357,358,-1,92,99,-1,177,139,636,345,353,375,376,-1,-1,178,357,358,-1,-1,-1,154,693,693,92,155,99,-1,431,432,-1,-1,721,738,-1,86,166,454,710,-1,425,426,-1,357,358,-1,237,1079,180,-1,182,180,180,-1,180,-1,-1,197,198,-1,197,198,-1,197,198,-1,845,1101,612,-1,606,611,276,277,-1,606,206,357,358,-1,357,358,-1,-1,-1,-1,202,-1,202,-1,36,-1,92,99,-1,197,198,-1,454,-1,909,848,92,99,-1,-1,454,87,87,-1,-1,-1,-1,696,693,693,693,-1,354,414,415,-1,-1,-1,-1,-1,-1,-1,-1,710,-1,-1,-1,-1,-1,-1,454,-1,349,350,-1,280,281,-1,284,278,279,345,353,278,279,679,-1,1019,-1,-1,375,848,376,-1,-1,92,690,-1,-1,690,292,1100,-1,-1,99,-1,-1,-1,686,687,417,418,-1,427,428,-1,433,434,-1,-1,-1,1079,318,542,431,432,-1,-1,-1,-1,-1,414,415,-1,429,430,-1,357,358,-1,357,358,-1,-1,414,415,-1,-1,705,345,353,-1,345,353,-1,753,1100,995,177,636,280,281,-1,357,358,-1,357,358,-1,357,358,-1,703,872,-1,1099,-1,722,-1,-1,848,380,-1,922,376,376,376,1012,384,1079,454,1079,388,386,548,391,950,425,426,-1,349,350,-1,345,400,400,696,454,454,-1,433,434,-1,431,432,-1,1012,280,281,-1,280,281,276,277,-1,414,415,-1,280,281,280,281,280,281,280,281,280,281,-1,-1,-1,92,99,-1,-1,-1,345,353,443,444,-1,345,353,-1,456,-1,842,843,453,454,-1,-1,-1,705,-1,613,-1,-1,611,454,-1,357,358,-1,-1,-1,357,358,-1,636,-1,-1,1011,693,86,1060,482,-1,-1,-1,433,434,-1,-1,465,-1,-1,1075,-1,-1,417,418,-1,-1,-1,636,-1,197,198,-1,872,431,432,-1,-1,-1,-1,-1,375,376,-1,-1,-1,-1,-1,431,432,-1,-1,454,526,526,526,526,530,237,-1,-1,-1,-1,-1,-1,613,-1,-1,1079,-1,-1,-1,-1,-1,909,214,843,-1,-1,-1,-1,559,-1,559,559,-1,707,559,559,574,561,-1,559,559,574,568,566,374,848,-1,-1,-1,-1,349,350,-1,431,432,-1,92,583,99,-1,186,-1,260,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,357,358,-1,-1,-1,-1,-1,-1,612,860,-1,-1,-1,186,-1,6,-1,237,237,178,402,-1,623,-1,848,318,81,431,432,-1,-1,-1,-1,710,1079,237,202,-1,-1,690,202,-1,-1,-1,649,-1,-1,649,92,-1,99,-1,417,418,-1,427,428,-1,1011,454,664,454,-1,354,-1,92,668,99,-1,454,672,672,-1,542,466,86,705,-1,-1,-1,-1,12,-1,688,688,693,722,731,688,-1,-1,-1,694,-1,-1,-1,-1,703,1099,-1,611,-1,611,707,-1,-1,-1,-1,374,-1,199,199,202,-1,215,-1,401,-1,722,-1,893,860,848,893,722,893,893,731,724,-1,-1,739,-1,893,893,739,724,414,276,277,-1,415,-1,705,425,426,-1,650,650,650,731,650,650,650,-1,92,99,-1,92,92,99,-1,99,-1,-1,59,62,-1,772,636,229,87,-1,-1,-1,-1,1075,689,690,787,-1,-1,788,-1,349,350,787,788,-1,821,839,793,793,793,796,793,793,793,839,801,801,801,801,801,801,839,808,809,808,808,808,808,814,809,808,808,808,839,839,839,822,822,822,822,808,808,808,821,821,808,808,808,808,835,836,821,860,168,-1,-1,-1,-1,611,848,848,-1,-1,-1,872,1012,852,229,229,-1,92,99,-1,-1,-1,-1,-1,-1,772,-1,606,-1,431,432,-1,-1,-1,689,689,-1,-1,454,-1,276,277,-1,-1,92,99,-1,-1,841,888,-1,-1,454,721,738,-1,-1,924,-1,92,899,899,99,-1,950,357,358,-1,-1,454,-1,-1,-1,-1,-1,924,-1,431,432,-1,925,-1,705,1100,922,923,922,923,-1,-1,-1,-1,-1,229,431,432,-1,92,92,99,-1,99,-1,-1,-1,946,705,-1,1019,958,-1,945,-1,949,973,-1,954,978,705,951,-1,963,960,465,971,960,971,971,967,971,969,965,971,958,980,945,949,978,946,465,945,-1,949,973,-1,983,978,-1,841,843,988,197,198,-1,318,454,1012,400,-1,1015,1015,-1,965,-1,696,-1,693,693,1009,693,693,693,909,909,1013,995,414,415,-1,465,443,444,-1,636,-1,-1,-1,429,430,-1,703,-1,872,1032,1099,-1,12,-1,-1,787,787,788,-1,788,-1,1046,454,-1,-1,-1,-1,-1,454,1052,-1,696,691,693,693,-1,693,1060,1060,693,693,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,843,888,-1,357,358,-1,-1,-1,345,353,-1,636,1045,86,-1,-1,357,358,-1,612,1098,1098,1098,-1,636,-1,-1,-1,276,277,-1,357,358,-1,-1,414,415,-1,-1,454,-1,1079,542,1120,349,350,-1,345,-1,402,-1,-1,-1,92,1132,1132,99,-1,-1,-1,-1,431,432,-1,92,690,-1,-1,690,1143,1100,-1,-1,99,-1,-1,202,-1,202,1157,-1,1157,-1,872,636,1019}; +static int parent_map[] = {-1,-1,202,-1,-1,-1,614,-1,-1,276,277,-1,-1,-1,551,14,390,431,414,415,-1,432,-1,357,358,-1,276,277,-1,-1,-1,-1,-1,710,454,-1,-1,-1,-1,853,715,715,40,-1,-1,-1,-1,-1,465,639,431,432,-1,665,-1,665,665,86,-1,57,87,-1,60,92,63,99,-1,-1,-1,-1,1018,229,357,358,-1,-1,79,-1,-1,454,-1,167,80,80,80,84,237,1001,454,-1,466,930,345,349,350,-1,92,99,-1,353,930,1026,-1,357,358,-1,639,417,418,-1,427,428,-1,417,418,-1,427,428,-1,-1,675,454,121,121,454,124,125,124,127,41,-1,357,358,-1,92,99,-1,177,139,639,345,353,375,376,-1,-1,178,357,358,-1,-1,-1,154,698,698,92,155,99,-1,431,432,-1,-1,726,743,-1,86,166,454,715,-1,425,426,-1,357,358,-1,237,1086,180,-1,182,180,180,-1,180,-1,-1,197,198,-1,197,198,-1,197,198,-1,850,1109,615,-1,609,614,276,277,-1,609,206,357,358,-1,357,358,-1,-1,-1,-1,202,-1,202,-1,36,-1,92,99,-1,197,198,-1,454,-1,915,853,92,99,-1,-1,454,87,87,-1,-1,-1,-1,701,698,698,698,-1,354,414,415,-1,-1,-1,-1,-1,-1,-1,-1,715,-1,-1,-1,-1,-1,-1,454,-1,349,350,-1,280,281,-1,284,278,279,345,353,278,279,683,-1,1026,-1,-1,375,853,376,-1,-1,92,694,-1,-1,694,292,1108,-1,-1,99,-1,-1,-1,690,691,417,418,-1,427,428,-1,433,434,-1,-1,-1,1086,318,545,431,432,-1,-1,-1,-1,-1,414,415,-1,429,430,-1,357,358,-1,357,358,-1,-1,414,415,-1,-1,710,345,353,-1,345,353,-1,758,1108,1001,177,639,280,281,-1,357,358,-1,357,358,-1,357,358,-1,708,877,-1,1107,-1,727,-1,-1,853,380,-1,928,376,376,376,1019,384,1086,454,1086,388,386,551,391,956,425,426,-1,349,350,-1,345,400,400,701,454,454,-1,433,434,-1,431,432,-1,1019,280,281,-1,280,281,276,277,-1,414,415,-1,280,281,280,281,280,281,280,281,280,281,-1,-1,-1,92,99,-1,-1,-1,345,353,443,444,-1,345,353,-1,456,-1,847,848,453,454,-1,-1,-1,710,-1,616,-1,-1,614,454,-1,357,358,-1,-1,-1,357,358,-1,639,-1,-1,1018,698,86,1053,482,1067,484,-1,-1,-1,433,434,-1,-1,1002,465,-1,-1,1082,-1,-1,417,418,-1,-1,-1,639,-1,197,198,-1,877,431,432,-1,-1,-1,-1,-1,375,376,-1,-1,-1,-1,-1,431,432,-1,-1,454,529,529,529,529,533,237,-1,-1,-1,-1,-1,-1,616,-1,-1,1086,-1,-1,-1,-1,-1,915,214,848,-1,-1,-1,-1,562,-1,562,562,-1,712,562,562,577,564,-1,562,562,577,571,569,374,853,-1,-1,-1,-1,349,350,-1,431,432,-1,92,586,99,-1,186,-1,260,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,357,358,-1,-1,-1,-1,-1,-1,615,865,-1,-1,-1,186,-1,6,-1,237,237,178,402,-1,626,-1,853,318,81,431,432,-1,-1,-1,-1,715,1086,237,202,-1,-1,694,202,-1,-1,-1,652,-1,-1,652,92,-1,99,-1,417,418,-1,427,428,-1,1018,454,667,454,-1,354,-1,92,671,99,-1,454,675,675,-1,545,466,1052,86,710,-1,-1,-1,-1,12,-1,692,692,698,727,736,692,-1,-1,-1,-1,699,-1,-1,-1,-1,708,1107,-1,614,-1,614,712,-1,-1,-1,-1,374,-1,199,199,202,-1,215,-1,401,-1,727,-1,899,865,853,899,727,899,899,736,729,-1,-1,744,-1,899,899,744,729,414,276,277,-1,415,-1,710,425,426,-1,653,653,653,736,653,653,653,-1,92,99,-1,92,92,99,-1,99,-1,-1,59,62,-1,777,639,229,87,-1,-1,-1,-1,1082,693,694,792,-1,-1,793,-1,349,350,792,793,-1,826,844,798,798,798,801,798,798,798,844,806,806,806,806,806,806,844,813,814,813,813,813,813,819,814,813,813,813,844,844,844,827,827,827,827,813,813,813,826,826,813,813,813,813,840,841,826,865,168,-1,-1,-1,-1,614,853,853,-1,-1,-1,877,1019,857,229,229,-1,92,99,-1,-1,-1,-1,-1,-1,777,-1,609,-1,431,432,-1,-1,1002,-1,693,693,-1,-1,454,-1,276,277,-1,-1,92,99,-1,-1,846,894,-1,-1,454,726,743,-1,-1,930,-1,92,905,905,99,-1,956,357,358,-1,-1,454,-1,-1,-1,-1,-1,930,-1,431,432,-1,931,-1,710,1108,928,929,928,929,-1,-1,-1,-1,-1,229,354,431,432,-1,92,92,99,-1,99,-1,-1,952,710,-1,1026,964,-1,951,-1,955,979,-1,960,984,710,957,-1,969,966,465,977,966,977,977,973,977,975,971,977,964,986,951,955,984,952,465,951,-1,955,979,-1,989,984,-1,846,848,994,197,198,-1,318,454,237,1019,400,-1,1022,1022,-1,971,-1,701,-1,698,698,1016,698,698,698,915,915,1020,1001,414,415,-1,465,443,444,-1,639,-1,-1,-1,429,430,-1,708,-1,877,1039,1107,-1,12,-1,-1,792,792,793,-1,793,-1,1053,454,-1,-1,-1,-1,-1,454,1059,-1,701,695,698,698,-1,698,1067,1067,698,698,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,848,894,354,-1,357,358,-1,-1,-1,345,353,-1,639,1052,86,-1,-1,357,358,-1,615,1106,1106,1106,-1,639,-1,-1,-1,276,277,-1,357,358,-1,-1,414,415,-1,-1,454,-1,1086,545,1128,349,350,-1,345,-1,402,-1,-1,-1,92,1140,1140,99,-1,-1,-1,-1,431,432,-1,92,694,-1,-1,694,1151,1108,-1,-1,99,-1,-1,202,-1,202,1165,-1,1165,-1,877,639,1026}; boost::optional Type::Parent(Enum v){ const int p = parent_map[static_cast(v)]; if (p >= 0) { @@ -2134,7 +2149,7 @@ boost::optional Type::Parent(Enum v){ } bool Type::IsSimple(Enum v) { - return v == Type::IfcAbsorbedDoseMeasure || v == Type::IfcAccelerationMeasure || v == Type::IfcAmountOfSubstanceMeasure || v == Type::IfcAngularVelocityMeasure || v == Type::IfcArcIndex || v == Type::IfcAreaDensityMeasure || v == Type::IfcAreaMeasure || v == Type::IfcBoolean || v == Type::IfcColour || v == Type::IfcComplexNumber || v == Type::IfcCompoundPlaneAngleMeasure || v == Type::IfcContextDependentMeasure || v == Type::IfcCountMeasure || v == Type::IfcCurvatureMeasure || v == Type::IfcCurveStyleFontSelect || v == Type::IfcDate || v == Type::IfcDateTime || v == Type::IfcDerivedMeasureValue || v == Type::IfcDescriptiveMeasure || v == Type::IfcDoseEquivalentMeasure || v == Type::IfcDuration || v == Type::IfcDynamicViscosityMeasure || v == Type::IfcElectricCapacitanceMeasure || v == Type::IfcElectricChargeMeasure || v == Type::IfcElectricConductanceMeasure || v == Type::IfcElectricCurrentMeasure || v == Type::IfcElectricResistanceMeasure || v == Type::IfcElectricVoltageMeasure || v == Type::IfcEnergyMeasure || v == Type::IfcForceMeasure || v == Type::IfcFrequencyMeasure || v == Type::IfcHeatFluxDensityMeasure || v == Type::IfcHeatingValueMeasure || v == Type::IfcIdentifier || v == Type::IfcIlluminanceMeasure || v == Type::IfcInductanceMeasure || v == Type::IfcInteger || v == Type::IfcIntegerCountRateMeasure || v == Type::IfcIonConcentrationMeasure || v == Type::IfcIsothermalMoistureCapacityMeasure || v == Type::IfcKinematicViscosityMeasure || v == Type::IfcLabel || v == Type::IfcLengthMeasure || v == Type::IfcLineIndex || v == Type::IfcLinearForceMeasure || v == Type::IfcLinearMomentMeasure || v == Type::IfcLinearStiffnessMeasure || v == Type::IfcLinearVelocityMeasure || v == Type::IfcLogical || v == Type::IfcLuminousFluxMeasure || v == Type::IfcLuminousIntensityDistributionMeasure || v == Type::IfcLuminousIntensityMeasure || v == Type::IfcMagneticFluxDensityMeasure || v == Type::IfcMagneticFluxMeasure || v == Type::IfcMassDensityMeasure || v == Type::IfcMassFlowRateMeasure || v == Type::IfcMassMeasure || v == Type::IfcMassPerLengthMeasure || v == Type::IfcMeasureValue || v == Type::IfcModulusOfElasticityMeasure || v == Type::IfcModulusOfLinearSubgradeReactionMeasure || v == Type::IfcModulusOfRotationalSubgradeReactionMeasure || v == Type::IfcModulusOfSubgradeReactionMeasure || v == Type::IfcMoistureDiffusivityMeasure || v == Type::IfcMolecularWeightMeasure || v == Type::IfcMomentOfInertiaMeasure || v == Type::IfcMonetaryMeasure || v == Type::IfcNonNegativeLengthMeasure || v == Type::IfcNormalisedRatioMeasure || v == Type::IfcNullStyle || v == Type::IfcNumericMeasure || v == Type::IfcPHMeasure || v == Type::IfcParameterValue || v == Type::IfcPlanarForceMeasure || v == Type::IfcPlaneAngleMeasure || v == Type::IfcPositiveInteger || v == Type::IfcPositiveLengthMeasure || v == Type::IfcPositivePlaneAngleMeasure || v == Type::IfcPositiveRatioMeasure || v == Type::IfcPowerMeasure || v == Type::IfcPressureMeasure || v == Type::IfcPropertySetDefinitionSet || v == Type::IfcRadioActivityMeasure || v == Type::IfcRatioMeasure || v == Type::IfcReal || v == Type::IfcRotationalFrequencyMeasure || v == Type::IfcRotationalMassMeasure || v == Type::IfcRotationalStiffnessMeasure || v == Type::IfcSectionModulusMeasure || v == Type::IfcSectionalAreaIntegralMeasure || v == Type::IfcShearModulusMeasure || v == Type::IfcSimpleValue || v == Type::IfcSolidAngleMeasure || v == Type::IfcSoundPowerLevelMeasure || v == Type::IfcSoundPowerMeasure || v == Type::IfcSoundPressureLevelMeasure || v == Type::IfcSoundPressureMeasure || v == Type::IfcSpecificHeatCapacityMeasure || v == Type::IfcSpecularExponent || v == Type::IfcSpecularRoughness || v == Type::IfcTemperatureGradientMeasure || v == Type::IfcTemperatureRateOfChangeMeasure || v == Type::IfcText || v == Type::IfcThermalAdmittanceMeasure || v == Type::IfcThermalConductivityMeasure || v == Type::IfcThermalExpansionCoefficientMeasure || v == Type::IfcThermalResistanceMeasure || v == Type::IfcThermalTransmittanceMeasure || v == Type::IfcThermodynamicTemperatureMeasure || v == Type::IfcTime || v == Type::IfcTimeMeasure || v == Type::IfcTimeStamp || v == Type::IfcTorqueMeasure || v == Type::IfcValue || v == Type::IfcVaporPermeabilityMeasure || v == Type::IfcVolumeMeasure || v == Type::IfcVolumetricFlowRateMeasure || v == Type::IfcWarpingConstantMeasure || v == Type::IfcWarpingMomentMeasure; + return v == Type::IfcAbsorbedDoseMeasure || v == Type::IfcAccelerationMeasure || v == Type::IfcAmountOfSubstanceMeasure || v == Type::IfcAngularVelocityMeasure || v == Type::IfcArcIndex || v == Type::IfcAreaDensityMeasure || v == Type::IfcAreaMeasure || v == Type::IfcBinary || v == Type::IfcBoolean || v == Type::IfcColour || v == Type::IfcComplexNumber || v == Type::IfcCompoundPlaneAngleMeasure || v == Type::IfcContextDependentMeasure || v == Type::IfcCountMeasure || v == Type::IfcCurvatureMeasure || v == Type::IfcCurveStyleFontSelect || v == Type::IfcDate || v == Type::IfcDateTime || v == Type::IfcDerivedMeasureValue || v == Type::IfcDescriptiveMeasure || v == Type::IfcDoseEquivalentMeasure || v == Type::IfcDuration || v == Type::IfcDynamicViscosityMeasure || v == Type::IfcElectricCapacitanceMeasure || v == Type::IfcElectricChargeMeasure || v == Type::IfcElectricConductanceMeasure || v == Type::IfcElectricCurrentMeasure || v == Type::IfcElectricResistanceMeasure || v == Type::IfcElectricVoltageMeasure || v == Type::IfcEnergyMeasure || v == Type::IfcForceMeasure || v == Type::IfcFrequencyMeasure || v == Type::IfcHeatFluxDensityMeasure || v == Type::IfcHeatingValueMeasure || v == Type::IfcIdentifier || v == Type::IfcIlluminanceMeasure || v == Type::IfcInductanceMeasure || v == Type::IfcInteger || v == Type::IfcIntegerCountRateMeasure || v == Type::IfcIonConcentrationMeasure || v == Type::IfcIsothermalMoistureCapacityMeasure || v == Type::IfcKinematicViscosityMeasure || v == Type::IfcLabel || v == Type::IfcLengthMeasure || v == Type::IfcLineIndex || v == Type::IfcLinearForceMeasure || v == Type::IfcLinearMomentMeasure || v == Type::IfcLinearStiffnessMeasure || v == Type::IfcLinearVelocityMeasure || v == Type::IfcLogical || v == Type::IfcLuminousFluxMeasure || v == Type::IfcLuminousIntensityDistributionMeasure || v == Type::IfcLuminousIntensityMeasure || v == Type::IfcMagneticFluxDensityMeasure || v == Type::IfcMagneticFluxMeasure || v == Type::IfcMassDensityMeasure || v == Type::IfcMassFlowRateMeasure || v == Type::IfcMassMeasure || v == Type::IfcMassPerLengthMeasure || v == Type::IfcMeasureValue || v == Type::IfcModulusOfElasticityMeasure || v == Type::IfcModulusOfLinearSubgradeReactionMeasure || v == Type::IfcModulusOfRotationalSubgradeReactionMeasure || v == Type::IfcModulusOfSubgradeReactionMeasure || v == Type::IfcMoistureDiffusivityMeasure || v == Type::IfcMolecularWeightMeasure || v == Type::IfcMomentOfInertiaMeasure || v == Type::IfcMonetaryMeasure || v == Type::IfcNonNegativeLengthMeasure || v == Type::IfcNormalisedRatioMeasure || v == Type::IfcNullStyle || v == Type::IfcNumericMeasure || v == Type::IfcPHMeasure || v == Type::IfcParameterValue || v == Type::IfcPlanarForceMeasure || v == Type::IfcPlaneAngleMeasure || v == Type::IfcPositiveInteger || v == Type::IfcPositiveLengthMeasure || v == Type::IfcPositivePlaneAngleMeasure || v == Type::IfcPositiveRatioMeasure || v == Type::IfcPowerMeasure || v == Type::IfcPressureMeasure || v == Type::IfcPropertySetDefinitionSet || v == Type::IfcRadioActivityMeasure || v == Type::IfcRatioMeasure || v == Type::IfcReal || v == Type::IfcRotationalFrequencyMeasure || v == Type::IfcRotationalMassMeasure || v == Type::IfcRotationalStiffnessMeasure || v == Type::IfcSectionModulusMeasure || v == Type::IfcSectionalAreaIntegralMeasure || v == Type::IfcShearModulusMeasure || v == Type::IfcSimpleValue || v == Type::IfcSolidAngleMeasure || v == Type::IfcSoundPowerLevelMeasure || v == Type::IfcSoundPowerMeasure || v == Type::IfcSoundPressureLevelMeasure || v == Type::IfcSoundPressureMeasure || v == Type::IfcSpecificHeatCapacityMeasure || v == Type::IfcSpecularExponent || v == Type::IfcSpecularRoughness || v == Type::IfcTemperatureGradientMeasure || v == Type::IfcTemperatureRateOfChangeMeasure || v == Type::IfcText || v == Type::IfcThermalAdmittanceMeasure || v == Type::IfcThermalConductivityMeasure || v == Type::IfcThermalExpansionCoefficientMeasure || v == Type::IfcThermalResistanceMeasure || v == Type::IfcThermalTransmittanceMeasure || v == Type::IfcThermodynamicTemperatureMeasure || v == Type::IfcTime || v == Type::IfcTimeMeasure || v == Type::IfcTimeStamp || v == Type::IfcTorqueMeasure || v == Type::IfcValue || v == Type::IfcVaporPermeabilityMeasure || v == Type::IfcVolumeMeasure || v == Type::IfcVolumetricFlowRateMeasure || v == Type::IfcWarpingConstantMeasure || v == Type::IfcWarpingMomentMeasure; } @@ -2507,8 +2522,8 @@ IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum IfcBuildingElemen } const char* IfcBuildingElementProxyTypeEnum::ToString(IfcBuildingElementProxyTypeEnum v) { - if ( v < 0 || v >= 6 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORVOID", "USERDEFINED", "NOTDEFINED" }; + if ( v < 0 || v >= 7 ) throw IfcException("Unable to find find keyword in schema"); + const char* names[] = { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORVOID", "PROVISIONFORSPACE", "USERDEFINED", "NOTDEFINED" }; return names[v]; } @@ -2517,6 +2532,7 @@ IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum IfcBuildingElem if (s == "ELEMENT") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_ELEMENT; if (s == "PARTIAL") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_PARTIAL; if (s == "PROVISIONFORVOID") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_PROVISIONFORVOID; + if (s == "PROVISIONFORSPACE") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_PROVISIONFORSPACE; if (s == "USERDEFINED") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_USERDEFINED; if (s == "NOTDEFINED") return ::Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyType_NOTDEFINED; throw IfcException("Unable to find find keyword in schema"); @@ -3647,7 +3663,7 @@ IfcEventTypeEnum::IfcEventTypeEnum IfcEventTypeEnum::FromString(const std::strin const char* IfcExternalSpatialElementTypeEnum::ToString(IfcExternalSpatialElementTypeEnum v) { if ( v < 0 || v >= 6 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "EXTERNAL", "EXTERNAL_EARTH", "EXTERNAL_WATER", "EXTERNAL_FIRE", "USERDEFINED", "NOTDEFIEND" }; + const char* names[] = { "EXTERNAL", "EXTERNAL_EARTH", "EXTERNAL_WATER", "EXTERNAL_FIRE", "USERDEFINED", "NOTDEFINED" }; return names[v]; } @@ -3657,7 +3673,7 @@ IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum IfcExternal if (s == "EXTERNAL_WATER") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_EXTERNAL_WATER; if (s == "EXTERNAL_FIRE") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_EXTERNAL_FIRE; if (s == "USERDEFINED") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_USERDEFINED; - if (s == "NOTDEFIEND") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_NOTDEFIEND; + if (s == "NOTDEFINED") return ::Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementType_NOTDEFINED; throw IfcException("Unable to find find keyword in schema"); } @@ -4454,6 +4470,19 @@ IfcPlateTypeEnum::IfcPlateTypeEnum IfcPlateTypeEnum::FromString(const std::strin throw IfcException("Unable to find find keyword in schema"); } +const char* IfcPreferredSurfaceCurveRepresentation::ToString(IfcPreferredSurfaceCurveRepresentation v) { + if ( v < 0 || v >= 3 ) throw IfcException("Unable to find find keyword in schema"); + const char* names[] = { "CURVE3D", "PCURVE_S1", "PCURVE_S2" }; + return names[v]; +} + +IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation IfcPreferredSurfaceCurveRepresentation::FromString(const std::string& s) { + if (s == "CURVE3D") return ::Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation_CURVE3D; + if (s == "PCURVE_S1") return ::Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation_PCURVE_S1; + if (s == "PCURVE_S2") return ::Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation_PCURVE_S2; + throw IfcException("Unable to find find keyword in schema"); +} + const char* IfcProcedureTypeEnum::ToString(IfcProcedureTypeEnum v) { if ( v < 0 || v >= 9 ) throw IfcException("Unable to find find keyword in schema"); const char* names[] = { "ADVICE_CAUTION", "ADVICE_NOTE", "ADVICE_WARNING", "CALIBRATION", "DIAGNOSTIC", "SHUTDOWN", "STARTUP", "USERDEFINED", "NOTDEFINED" }; @@ -4906,12 +4935,13 @@ IfcSectionTypeEnum::IfcSectionTypeEnum IfcSectionTypeEnum::FromString(const std: } const char* IfcSensorTypeEnum::ToString(IfcSensorTypeEnum v) { - if ( v < 0 || v >= 25 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "FIRESENSOR", "FLOWSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "SMOKESENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }; + if ( v < 0 || v >= 26 ) throw IfcException("Unable to find find keyword in schema"); + const char* names[] = { "COSENSOR", "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "FIRESENSOR", "FLOWSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "SMOKESENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }; return names[v]; } IfcSensorTypeEnum::IfcSensorTypeEnum IfcSensorTypeEnum::FromString(const std::string& s) { + if (s == "COSENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_COSENSOR; if (s == "CO2SENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_CO2SENSOR; if (s == "CONDUCTANCESENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_CONDUCTANCESENSOR; if (s == "CONTACTSENSOR") return ::Ifc4::IfcSensorTypeEnum::IfcSensorType_CONTACTSENSOR; @@ -6896,16 +6926,6 @@ IfcSpecularRoughness::IfcSpecularRoughness(IfcEntityInstanceData* e) { entity = IfcSpecularRoughness::IfcSpecularRoughness(double v) { entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(v); entity->setArgument(0, attr);} } IfcSpecularRoughness::operator double() const { return *entity->getArgument(0); } -// Function implementations for IfcStrippedOptional -IfcUtil::ArgumentType IfcStrippedOptional::getArgumentType(unsigned int i) const { if (i == 0) { return IfcUtil::Argument_BOOL; } else { throw IfcParse::IfcAttributeOutOfRangeException("Argument index out of range"); } } -Argument* IfcStrippedOptional::getArgument(unsigned int i) const { return entity->getArgument(i); } -bool IfcStrippedOptional::is(Type::Enum v) const { return v == IfcStrippedOptional::Class(); } -Type::Enum IfcStrippedOptional::type() const { return Type::IfcStrippedOptional; } -Type::Enum IfcStrippedOptional::Class() { return Type::IfcStrippedOptional; } -IfcStrippedOptional::IfcStrippedOptional(IfcEntityInstanceData* e) { entity = e; } -IfcStrippedOptional::IfcStrippedOptional(bool v) { entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(v); entity->setArgument(0, attr);} } -IfcStrippedOptional::operator bool() const { return *entity->getArgument(0); } - // Function implementations for IfcTemperatureGradientMeasure IfcUtil::ArgumentType IfcTemperatureGradientMeasure::getArgumentType(unsigned int i) const { if (i == 0) { return IfcUtil::Argument_DOUBLE; } else { throw IfcParse::IfcAttributeOutOfRangeException("Argument index out of range"); } } Argument* IfcTemperatureGradientMeasure::getArgument(unsigned int i) const { return entity->getArgument(i); } @@ -10780,6 +10800,25 @@ Type::Enum IfcIndexedPolyCurve::Class() { return Type::IfcIndexedPolyCurve; } IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcIndexedPolyCurve) throw IfcException("Unable to find find keyword in schema"); entity = e; } IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcCartesianPointList* v1_Points, boost::optional< IfcEntityList::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));entity->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); } } +// Function implementations for IfcIndexedPolygonalFace +std::vector< int > /*[3:?]*/ IfcIndexedPolygonalFace::CoordIndex() const { return *entity->getArgument(0); } +void IfcIndexedPolygonalFace::setCoordIndex(std::vector< int > /*[3:?]*/ v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(0,attr);} } +IfcPolygonalFaceSet::list::ptr IfcIndexedPolygonalFace::ToFaceSet() const { return entity->getInverse(Type::IfcPolygonalFaceSet, 2)->as(); } +bool IfcIndexedPolygonalFace::is(Type::Enum v) const { return v == Type::IfcIndexedPolygonalFace || IfcTessellatedItem::is(v); } +Type::Enum IfcIndexedPolygonalFace::type() const { return Type::IfcIndexedPolygonalFace; } +Type::Enum IfcIndexedPolygonalFace::Class() { return Type::IfcIndexedPolygonalFace; } +IfcIndexedPolygonalFace::IfcIndexedPolygonalFace(IfcEntityInstanceData* e) : IfcTessellatedItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcIndexedPolygonalFace) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcIndexedPolygonalFace::IfcIndexedPolygonalFace(std::vector< int > /*[3:?]*/ v1_CoordIndex) : IfcTessellatedItem((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_CoordIndex));entity->setArgument(0,attr);} } + +// Function implementations for IfcIndexedPolygonalFaceWithVoids +std::vector< std::vector< int > > IfcIndexedPolygonalFaceWithVoids::InnerCoordIndices() const { return *entity->getArgument(1); } +void IfcIndexedPolygonalFaceWithVoids::setInnerCoordIndices(std::vector< std::vector< int > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(1,attr);} } +bool IfcIndexedPolygonalFaceWithVoids::is(Type::Enum v) const { return v == Type::IfcIndexedPolygonalFaceWithVoids || IfcIndexedPolygonalFace::is(v); } +Type::Enum IfcIndexedPolygonalFaceWithVoids::type() const { return Type::IfcIndexedPolygonalFaceWithVoids; } +Type::Enum IfcIndexedPolygonalFaceWithVoids::Class() { return Type::IfcIndexedPolygonalFaceWithVoids; } +IfcIndexedPolygonalFaceWithVoids::IfcIndexedPolygonalFaceWithVoids(IfcEntityInstanceData* e) : IfcIndexedPolygonalFace((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcIndexedPolygonalFaceWithVoids) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcIndexedPolygonalFaceWithVoids::IfcIndexedPolygonalFaceWithVoids(std::vector< int > /*[3:?]*/ v1_CoordIndex, std::vector< std::vector< int > > v2_InnerCoordIndices) : IfcIndexedPolygonalFace((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_CoordIndex));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_InnerCoordIndices));entity->setArgument(1,attr);} } + // Function implementations for IfcIndexedTextureMap IfcTessellatedFaceSet* IfcIndexedTextureMap::MappedTo() const { return (IfcTessellatedFaceSet*)((IfcUtil::IfcBaseClass*)(*entity->getArgument(1))); } void IfcIndexedTextureMap::setMappedTo(IfcTessellatedFaceSet* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(1,attr);} } @@ -10820,6 +10859,13 @@ Type::Enum IfcInterceptorType::Class() { return Type::IfcInterceptorType; } IfcInterceptorType::IfcInterceptorType(IfcEntityInstanceData* e) : IfcFlowTreatmentDeviceType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcInterceptorType) throw IfcException("Unable to find find keyword in schema"); entity = e; } IfcInterceptorType::IfcInterceptorType(std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcInterceptorTypeEnum::IfcInterceptorTypeEnum v10_PredefinedType) : IfcFlowTreatmentDeviceType((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));entity->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));entity->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));entity->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());entity->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());entity->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));entity->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));entity->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,IfcInterceptorTypeEnum::ToString(v10_PredefinedType))));entity->setArgument(9,attr);} } +// Function implementations for IfcIntersectionCurve +bool IfcIntersectionCurve::is(Type::Enum v) const { return v == Type::IfcIntersectionCurve || IfcSurfaceCurve::is(v); } +Type::Enum IfcIntersectionCurve::type() const { return Type::IfcIntersectionCurve; } +Type::Enum IfcIntersectionCurve::Class() { return Type::IfcIntersectionCurve; } +IfcIntersectionCurve::IfcIntersectionCurve(IfcEntityInstanceData* e) : IfcSurfaceCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcIntersectionCurve) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcIntersectionCurve::IfcIntersectionCurve(IfcCurve* v1_Curve3D, IfcTemplatedEntityList< IfcPcurve >::ptr v2_AssociatedGeometry, IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v3_MasterRepresentation) : IfcSurfaceCurve((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Curve3D));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AssociatedGeometry)->generalize());entity->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v3_MasterRepresentation,IfcPreferredSurfaceCurveRepresentation::ToString(v3_MasterRepresentation))));entity->setArgument(2,attr);} } + // Function implementations for IfcInventory bool IfcInventory::hasPredefinedType() const { return !entity->getArgument(5)->isNull(); } IfcInventoryTypeEnum::IfcInventoryTypeEnum IfcInventory::PredefinedType() const { return IfcInventoryTypeEnum::FromString(*entity->getArgument(5)); } @@ -12200,6 +12246,21 @@ Type::Enum IfcPolygonalBoundedHalfSpace::Class() { return Type::IfcPolygonalBoun IfcPolygonalBoundedHalfSpace::IfcPolygonalBoundedHalfSpace(IfcEntityInstanceData* e) : IfcHalfSpaceSolid((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcPolygonalBoundedHalfSpace) throw IfcException("Unable to find find keyword in schema"); entity = e; } IfcPolygonalBoundedHalfSpace::IfcPolygonalBoundedHalfSpace(IfcSurface* v1_BaseSurface, bool v2_AgreementFlag, IfcAxis2Placement3D* v3_Position, IfcBoundedCurve* v4_PolygonalBoundary) : IfcHalfSpaceSolid((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BaseSurface));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AgreementFlag));entity->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));entity->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_PolygonalBoundary));entity->setArgument(3,attr);} } +// Function implementations for IfcPolygonalFaceSet +bool IfcPolygonalFaceSet::hasClosed() const { return !entity->getArgument(1)->isNull(); } +bool IfcPolygonalFaceSet::Closed() const { return *entity->getArgument(1); } +void IfcPolygonalFaceSet::setClosed(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(1,attr);} } +IfcTemplatedEntityList< IfcIndexedPolygonalFace >::ptr IfcPolygonalFaceSet::Faces() const { IfcEntityList::ptr es = *entity->getArgument(2); return es->as(); } +void IfcPolygonalFaceSet::setFaces(IfcTemplatedEntityList< IfcIndexedPolygonalFace >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v->generalize());entity->setArgument(2,attr);} } +bool IfcPolygonalFaceSet::hasPnIndex() const { return !entity->getArgument(3)->isNull(); } +std::vector< int > /*[1:?]*/ IfcPolygonalFaceSet::PnIndex() const { return *entity->getArgument(3); } +void IfcPolygonalFaceSet::setPnIndex(std::vector< int > /*[1:?]*/ v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(3,attr);} } +bool IfcPolygonalFaceSet::is(Type::Enum v) const { return v == Type::IfcPolygonalFaceSet || IfcTessellatedFaceSet::is(v); } +Type::Enum IfcPolygonalFaceSet::type() const { return Type::IfcPolygonalFaceSet; } +Type::Enum IfcPolygonalFaceSet::Class() { return Type::IfcPolygonalFaceSet; } +IfcPolygonalFaceSet::IfcPolygonalFaceSet(IfcEntityInstanceData* e) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcPolygonalFaceSet) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcPolygonalFaceSet::IfcPolygonalFaceSet(IfcCartesianPointList3D* v1_Coordinates, boost::optional< bool > v2_Closed, IfcTemplatedEntityList< IfcIndexedPolygonalFace >::ptr v3_Faces, boost::optional< std::vector< int > /*[1:?]*/ > v4_PnIndex) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));entity->setArgument(0,attr);} if (v2_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Closed));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Faces)->generalize());entity->setArgument(2,attr);} if (v4_PnIndex) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_PnIndex));entity->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(3, attr); } } + // Function implementations for IfcPolyline IfcTemplatedEntityList< IfcCartesianPoint >::ptr IfcPolyline::Points() const { IfcEntityList::ptr es = *entity->getArgument(0); return es->as(); } void IfcPolyline::setPoints(IfcTemplatedEntityList< IfcCartesianPoint >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v->generalize());entity->setArgument(0,attr);} } @@ -14071,6 +14132,13 @@ Type::Enum IfcSchedulingTime::Class() { return Type::IfcSchedulingTime; } IfcSchedulingTime::IfcSchedulingTime(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != Type::IfcSchedulingTime) throw IfcException("Unable to find find keyword in schema"); entity = e; } IfcSchedulingTime::IfcSchedulingTime(boost::optional< std::string > v1_Name, boost::optional< IfcDataOriginEnum::IfcDataOriginEnum > v2_DataOrigin, boost::optional< std::string > v3_UserDefinedDataOrigin) : IfcUtil::IfcBaseEntity() {entity = new IfcEntityInstanceData(Class()); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));entity->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(0, attr); } if (v2_DataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v2_DataOrigin,IfcDataOriginEnum::ToString(*v2_DataOrigin))));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); } if (v3_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_UserDefinedDataOrigin));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); } } +// Function implementations for IfcSeamCurve +bool IfcSeamCurve::is(Type::Enum v) const { return v == Type::IfcSeamCurve || IfcSurfaceCurve::is(v); } +Type::Enum IfcSeamCurve::type() const { return Type::IfcSeamCurve; } +Type::Enum IfcSeamCurve::Class() { return Type::IfcSeamCurve; } +IfcSeamCurve::IfcSeamCurve(IfcEntityInstanceData* e) : IfcSurfaceCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcSeamCurve) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcSeamCurve::IfcSeamCurve(IfcCurve* v1_Curve3D, IfcTemplatedEntityList< IfcPcurve >::ptr v2_AssociatedGeometry, IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v3_MasterRepresentation) : IfcSurfaceCurve((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Curve3D));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AssociatedGeometry)->generalize());entity->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v3_MasterRepresentation,IfcPreferredSurfaceCurveRepresentation::ToString(v3_MasterRepresentation))));entity->setArgument(2,attr);} } + // Function implementations for IfcSectionProperties IfcSectionTypeEnum::IfcSectionTypeEnum IfcSectionProperties::SectionType() const { return IfcSectionTypeEnum::FromString(*entity->getArgument(0)); } void IfcSectionProperties::setSectionType(IfcSectionTypeEnum::IfcSectionTypeEnum v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,IfcSectionTypeEnum::ToString(v)));entity->setArgument(0,attr);} } @@ -14452,6 +14520,15 @@ Type::Enum IfcSphere::Class() { return Type::IfcSphere; } IfcSphere::IfcSphere(IfcEntityInstanceData* e) : IfcCsgPrimitive3D((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcSphere) throw IfcException("Unable to find find keyword in schema"); entity = e; } IfcSphere::IfcSphere(IfcAxis2Placement3D* v1_Position, double v2_Radius) : IfcCsgPrimitive3D((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Radius));entity->setArgument(1,attr);} } +// Function implementations for IfcSphericalSurface +double IfcSphericalSurface::Radius() const { return *entity->getArgument(1); } +void IfcSphericalSurface::setRadius(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(1,attr);} } +bool IfcSphericalSurface::is(Type::Enum v) const { return v == Type::IfcSphericalSurface || IfcElementarySurface::is(v); } +Type::Enum IfcSphericalSurface::type() const { return Type::IfcSphericalSurface; } +Type::Enum IfcSphericalSurface::Class() { return Type::IfcSphericalSurface; } +IfcSphericalSurface::IfcSphericalSurface(IfcEntityInstanceData* e) : IfcElementarySurface((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcSphericalSurface) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcSphericalSurface::IfcSphericalSurface(IfcAxis2Placement3D* v1_Position, double v2_Radius) : IfcElementarySurface((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Radius));entity->setArgument(1,attr);} } + // Function implementations for IfcStackTerminal bool IfcStackTerminal::hasPredefinedType() const { return !entity->getArgument(8)->isNull(); } IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum IfcStackTerminal::PredefinedType() const { return IfcStackTerminalTypeEnum::FromString(*entity->getArgument(8)); } @@ -15014,6 +15091,19 @@ Type::Enum IfcSurface::Class() { return Type::IfcSurface; } IfcSurface::IfcSurface(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcSurface) throw IfcException("Unable to find find keyword in schema"); entity = e; } IfcSurface::IfcSurface() : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); } +// Function implementations for IfcSurfaceCurve +IfcCurve* IfcSurfaceCurve::Curve3D() const { return (IfcCurve*)((IfcUtil::IfcBaseClass*)(*entity->getArgument(0))); } +void IfcSurfaceCurve::setCurve3D(IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(0,attr);} } +IfcTemplatedEntityList< IfcPcurve >::ptr IfcSurfaceCurve::AssociatedGeometry() const { IfcEntityList::ptr es = *entity->getArgument(1); return es->as(); } +void IfcSurfaceCurve::setAssociatedGeometry(IfcTemplatedEntityList< IfcPcurve >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v->generalize());entity->setArgument(1,attr);} } +IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation IfcSurfaceCurve::MasterRepresentation() const { return IfcPreferredSurfaceCurveRepresentation::FromString(*entity->getArgument(2)); } +void IfcSurfaceCurve::setMasterRepresentation(IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,IfcPreferredSurfaceCurveRepresentation::ToString(v)));entity->setArgument(2,attr);} } +bool IfcSurfaceCurve::is(Type::Enum v) const { return v == Type::IfcSurfaceCurve || IfcCurve::is(v); } +Type::Enum IfcSurfaceCurve::type() const { return Type::IfcSurfaceCurve; } +Type::Enum IfcSurfaceCurve::Class() { return Type::IfcSurfaceCurve; } +IfcSurfaceCurve::IfcSurfaceCurve(IfcEntityInstanceData* e) : IfcCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcSurfaceCurve) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcSurfaceCurve::IfcSurfaceCurve(IfcCurve* v1_Curve3D, IfcTemplatedEntityList< IfcPcurve >::ptr v2_AssociatedGeometry, IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v3_MasterRepresentation) : IfcCurve((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Curve3D));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_AssociatedGeometry)->generalize());entity->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v3_MasterRepresentation,IfcPreferredSurfaceCurveRepresentation::ToString(v3_MasterRepresentation))));entity->setArgument(2,attr);} } + // Function implementations for IfcSurfaceCurveSweptAreaSolid IfcCurve* IfcSurfaceCurveSweptAreaSolid::Directrix() const { return (IfcCurve*)((IfcUtil::IfcBaseClass*)(*entity->getArgument(2))); } void IfcSurfaceCurveSweptAreaSolid::setDirectrix(IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(2,attr);} } @@ -15574,31 +15664,25 @@ void IfcTendonType::setNominalDiameter(double v) { {IfcWrite::IfcWriteArgument* bool IfcTendonType::hasCrossSectionArea() const { return !entity->getArgument(11)->isNull(); } double IfcTendonType::CrossSectionArea() const { return *entity->getArgument(11); } void IfcTendonType::setCrossSectionArea(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(11,attr);} } -bool IfcTendonType::hasSheethDiameter() const { return !entity->getArgument(12)->isNull(); } -double IfcTendonType::SheethDiameter() const { return *entity->getArgument(12); } -void IfcTendonType::setSheethDiameter(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(12,attr);} } +bool IfcTendonType::hasSheathDiameter() const { return !entity->getArgument(12)->isNull(); } +double IfcTendonType::SheathDiameter() const { return *entity->getArgument(12); } +void IfcTendonType::setSheathDiameter(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(12,attr);} } bool IfcTendonType::is(Type::Enum v) const { return v == Type::IfcTendonType || IfcReinforcingElementType::is(v); } Type::Enum IfcTendonType::type() const { return Type::IfcTendonType; } Type::Enum IfcTendonType::Class() { return Type::IfcTendonType; } IfcTendonType::IfcTendonType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcTendonType) throw IfcException("Unable to find find keyword in schema"); entity = e; } -IfcTendonType::IfcTendonType(std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcTendonTypeEnum::IfcTendonTypeEnum v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheethDiameter) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));entity->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));entity->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));entity->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());entity->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());entity->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));entity->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));entity->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,IfcTendonTypeEnum::ToString(v10_PredefinedType))));entity->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));entity->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));entity->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(11, attr); } if (v13_SheethDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_SheethDiameter));entity->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(12, attr); } } +IfcTendonType::IfcTendonType(std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcTendonTypeEnum::IfcTendonTypeEnum v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheathDiameter) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));entity->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));entity->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));entity->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());entity->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());entity->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));entity->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));entity->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,IfcTendonTypeEnum::ToString(v10_PredefinedType))));entity->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));entity->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));entity->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(11, attr); } if (v13_SheathDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_SheathDiameter));entity->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(12, attr); } } // Function implementations for IfcTessellatedFaceSet IfcCartesianPointList3D* IfcTessellatedFaceSet::Coordinates() const { return (IfcCartesianPointList3D*)((IfcUtil::IfcBaseClass*)(*entity->getArgument(0))); } void IfcTessellatedFaceSet::setCoordinates(IfcCartesianPointList3D* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(0,attr);} } -bool IfcTessellatedFaceSet::hasNormals() const { return !entity->getArgument(1)->isNull(); } -std::vector< std::vector< double > > IfcTessellatedFaceSet::Normals() const { return *entity->getArgument(1); } -void IfcTessellatedFaceSet::setNormals(std::vector< std::vector< double > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(1,attr);} } -bool IfcTessellatedFaceSet::hasClosed() const { return !entity->getArgument(2)->isNull(); } -bool IfcTessellatedFaceSet::Closed() const { return *entity->getArgument(2); } -void IfcTessellatedFaceSet::setClosed(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(2,attr);} } IfcIndexedColourMap::list::ptr IfcTessellatedFaceSet::HasColours() const { return entity->getInverse(Type::IfcIndexedColourMap, 0)->as(); } IfcIndexedTextureMap::list::ptr IfcTessellatedFaceSet::HasTextures() const { return entity->getInverse(Type::IfcIndexedTextureMap, 1)->as(); } bool IfcTessellatedFaceSet::is(Type::Enum v) const { return v == Type::IfcTessellatedFaceSet || IfcTessellatedItem::is(v); } Type::Enum IfcTessellatedFaceSet::type() const { return Type::IfcTessellatedFaceSet; } Type::Enum IfcTessellatedFaceSet::Class() { return Type::IfcTessellatedFaceSet; } IfcTessellatedFaceSet::IfcTessellatedFaceSet(IfcEntityInstanceData* e) : IfcTessellatedItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcTessellatedFaceSet) throw IfcException("Unable to find find keyword in schema"); entity = e; } -IfcTessellatedFaceSet::IfcTessellatedFaceSet(IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed) : IfcTessellatedItem((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));entity->setArgument(0,attr);} if (v2_Normals) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Normals));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); } if (v3_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Closed));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); } } +IfcTessellatedFaceSet::IfcTessellatedFaceSet(IfcCartesianPointList3D* v1_Coordinates) : IfcTessellatedItem((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));entity->setArgument(0,attr);} } // Function implementations for IfcTessellatedItem bool IfcTessellatedItem::is(Type::Enum v) const { return v == Type::IfcTessellatedItem || IfcGeometricRepresentationItem::is(v); } @@ -15820,6 +15904,17 @@ Type::Enum IfcTopologyRepresentation::Class() { return Type::IfcTopologyRepresen IfcTopologyRepresentation::IfcTopologyRepresentation(IfcEntityInstanceData* e) : IfcShapeModel((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcTopologyRepresentation) throw IfcException("Unable to find find keyword in schema"); entity = e; } IfcTopologyRepresentation::IfcTopologyRepresentation(IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, IfcTemplatedEntityList< IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));entity->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());entity->setArgument(3,attr);} } +// Function implementations for IfcToroidalSurface +double IfcToroidalSurface::MajorRadius() const { return *entity->getArgument(1); } +void IfcToroidalSurface::setMajorRadius(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(1,attr);} } +double IfcToroidalSurface::MinorRadius() const { return *entity->getArgument(2); } +void IfcToroidalSurface::setMinorRadius(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(2,attr);} } +bool IfcToroidalSurface::is(Type::Enum v) const { return v == Type::IfcToroidalSurface || IfcElementarySurface::is(v); } +Type::Enum IfcToroidalSurface::type() const { return Type::IfcToroidalSurface; } +Type::Enum IfcToroidalSurface::Class() { return Type::IfcToroidalSurface; } +IfcToroidalSurface::IfcToroidalSurface(IfcEntityInstanceData* e) : IfcElementarySurface((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcToroidalSurface) throw IfcException("Unable to find find keyword in schema"); entity = e; } +IfcToroidalSurface::IfcToroidalSurface(IfcAxis2Placement3D* v1_Position, double v2_MajorRadius, double v3_MinorRadius) : IfcElementarySurface((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));entity->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_MajorRadius));entity->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_MinorRadius));entity->setArgument(2,attr);} } + // Function implementations for IfcTransformer bool IfcTransformer::hasPredefinedType() const { return !entity->getArgument(8)->isNull(); } IfcTransformerTypeEnum::IfcTransformerTypeEnum IfcTransformer::PredefinedType() const { return IfcTransformerTypeEnum::FromString(*entity->getArgument(8)); } @@ -15874,16 +15969,22 @@ IfcTrapeziumProfileDef::IfcTrapeziumProfileDef(IfcEntityInstanceData* e) : IfcPa IfcTrapeziumProfileDef::IfcTrapeziumProfileDef(IfcProfileTypeEnum::IfcProfileTypeEnum v1_ProfileType, boost::optional< std::string > v2_ProfileName, IfcAxis2Placement2D* v3_Position, double v4_BottomXDim, double v5_TopXDim, double v6_YDim, double v7_TopXOffset) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,IfcProfileTypeEnum::ToString(v1_ProfileType))));entity->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));entity->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_BottomXDim));entity->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_TopXDim));entity->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_YDim));entity->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_TopXOffset));entity->setArgument(6,attr);} } // Function implementations for IfcTriangulatedFaceSet +bool IfcTriangulatedFaceSet::hasNormals() const { return !entity->getArgument(1)->isNull(); } +std::vector< std::vector< double > > IfcTriangulatedFaceSet::Normals() const { return *entity->getArgument(1); } +void IfcTriangulatedFaceSet::setNormals(std::vector< std::vector< double > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(1,attr);} } +bool IfcTriangulatedFaceSet::hasClosed() const { return !entity->getArgument(2)->isNull(); } +bool IfcTriangulatedFaceSet::Closed() const { return *entity->getArgument(2); } +void IfcTriangulatedFaceSet::setClosed(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(2,attr);} } std::vector< std::vector< int > > IfcTriangulatedFaceSet::CoordIndex() const { return *entity->getArgument(3); } void IfcTriangulatedFaceSet::setCoordIndex(std::vector< std::vector< int > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(3,attr);} } -bool IfcTriangulatedFaceSet::hasNormalIndex() const { return !entity->getArgument(4)->isNull(); } -std::vector< std::vector< int > > IfcTriangulatedFaceSet::NormalIndex() const { return *entity->getArgument(4); } -void IfcTriangulatedFaceSet::setNormalIndex(std::vector< std::vector< int > > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(4,attr);} } +bool IfcTriangulatedFaceSet::hasPnIndex() const { return !entity->getArgument(4)->isNull(); } +std::vector< int > /*[1:?]*/ IfcTriangulatedFaceSet::PnIndex() const { return *entity->getArgument(4); } +void IfcTriangulatedFaceSet::setPnIndex(std::vector< int > /*[1:?]*/ v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);entity->setArgument(4,attr);} } bool IfcTriangulatedFaceSet::is(Type::Enum v) const { return v == Type::IfcTriangulatedFaceSet || IfcTessellatedFaceSet::is(v); } Type::Enum IfcTriangulatedFaceSet::type() const { return Type::IfcTriangulatedFaceSet; } Type::Enum IfcTriangulatedFaceSet::Class() { return Type::IfcTriangulatedFaceSet; } IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(IfcEntityInstanceData* e) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != Type::IfcTriangulatedFaceSet) throw IfcException("Unable to find find keyword in schema"); entity = e; } -IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< std::vector< int > > > v5_NormalIndex) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));entity->setArgument(0,attr);} if (v2_Normals) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Normals));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); } if (v3_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Closed));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_CoordIndex));entity->setArgument(3,attr);} if (v5_NormalIndex) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_NormalIndex));entity->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(4, attr); } } +IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< int > /*[1:?]*/ > v5_PnIndex) : IfcTessellatedFaceSet((IfcEntityInstanceData*)0) {entity = new IfcEntityInstanceData(Class()); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Coordinates));entity->setArgument(0,attr);} if (v2_Normals) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Normals));entity->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(1, attr); } if (v3_Closed) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Closed));entity->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_CoordIndex));entity->setArgument(3,attr);} if (v5_PnIndex) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_PnIndex));entity->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); entity->setArgument(4, attr); } } // Function implementations for IfcTrimmedCurve IfcCurve* IfcTrimmedCurve::BasisCurve() const { return (IfcCurve*)((IfcUtil::IfcBaseClass*)(*entity->getArgument(0))); } diff --git a/src/ifcparse/Ifc4.h b/src/ifcparse/Ifc4.h index 6363f03213..7b6f852815 100644 --- a/src/ifcparse/Ifc4.h +++ b/src/ifcparse/Ifc4.h @@ -48,7 +48,7 @@ namespace Ifc4 { const char* const Identifier = "IFC4"; // Forward definitions -class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; class IfcActuatorType; class IfcAddress; class IfcAdvancedBrep; class IfcAdvancedBrepWithVoids; class IfcAdvancedFace; class IfcAirTerminal; class IfcAirTerminalBox; class IfcAirTerminalBoxType; class IfcAirTerminalType; class IfcAirToAirHeatRecovery; class IfcAirToAirHeatRecoveryType; class IfcAlarm; class IfcAlarmType; class IfcAnnotation; class IfcAnnotationFillArea; class IfcApplication; class IfcAppliedValue; class IfcApproval; class IfcApprovalRelationship; class IfcArbitraryClosedProfileDef; class IfcArbitraryOpenProfileDef; class IfcArbitraryProfileDefWithVoids; class IfcAsset; class IfcAsymmetricIShapeProfileDef; class IfcAudioVisualAppliance; class IfcAudioVisualApplianceType; class IfcAxis1Placement; class IfcAxis2Placement2D; class IfcAxis2Placement3D; class IfcBSplineCurve; class IfcBSplineCurveWithKnots; class IfcBSplineSurface; class IfcBSplineSurfaceWithKnots; class IfcBeam; class IfcBeamStandardCase; class IfcBeamType; class IfcBlobTexture; class IfcBlock; class IfcBoiler; class IfcBoilerType; class IfcBooleanClippingResult; class IfcBooleanResult; class IfcBoundaryCondition; class IfcBoundaryCurve; class IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping; class IfcBoundedCurve; class IfcBoundedSurface; class IfcBoundingBox; class IfcBoxedHalfSpace; class IfcBuilding; class IfcBuildingElement; class IfcBuildingElementPart; class IfcBuildingElementPartType; class IfcBuildingElementProxy; class IfcBuildingElementProxyType; class IfcBuildingElementType; class IfcBuildingStorey; class IfcBuildingSystem; class IfcBurner; class IfcBurnerType; class IfcCShapeProfileDef; class IfcCableCarrierFitting; class IfcCableCarrierFittingType; class IfcCableCarrierSegment; class IfcCableCarrierSegmentType; class IfcCableFitting; class IfcCableFittingType; class IfcCableSegment; class IfcCableSegmentType; class IfcCartesianPoint; class IfcCartesianPointList; class IfcCartesianPointList2D; class IfcCartesianPointList3D; class IfcCartesianTransformationOperator; class IfcCartesianTransformationOperator2D; class IfcCartesianTransformationOperator2DnonUniform; class IfcCartesianTransformationOperator3D; class IfcCartesianTransformationOperator3DnonUniform; class IfcCenterLineProfileDef; class IfcChiller; class IfcChillerType; class IfcChimney; class IfcChimneyType; class IfcCircle; class IfcCircleHollowProfileDef; class IfcCircleProfileDef; class IfcCivilElement; class IfcCivilElementType; class IfcClassification; class IfcClassificationReference; class IfcClosedShell; class IfcCoil; class IfcCoilType; class IfcColourRgb; class IfcColourRgbList; class IfcColourSpecification; class IfcColumn; class IfcColumnStandardCase; class IfcColumnType; class IfcCommunicationsAppliance; class IfcCommunicationsApplianceType; class IfcComplexProperty; class IfcComplexPropertyTemplate; class IfcCompositeCurve; class IfcCompositeCurveOnSurface; class IfcCompositeCurveSegment; class IfcCompositeProfileDef; class IfcCompressor; class IfcCompressorType; class IfcCondenser; class IfcCondenserType; class IfcConic; class IfcConnectedFaceSet; class IfcConnectionCurveGeometry; class IfcConnectionGeometry; class IfcConnectionPointEccentricity; class IfcConnectionPointGeometry; class IfcConnectionSurfaceGeometry; class IfcConnectionVolumeGeometry; class IfcConstraint; class IfcConstructionEquipmentResource; class IfcConstructionEquipmentResourceType; class IfcConstructionMaterialResource; class IfcConstructionMaterialResourceType; class IfcConstructionProductResource; class IfcConstructionProductResourceType; class IfcConstructionResource; class IfcConstructionResourceType; class IfcContext; class IfcContextDependentUnit; class IfcControl; class IfcController; class IfcControllerType; class IfcConversionBasedUnit; class IfcConversionBasedUnitWithOffset; class IfcCooledBeam; class IfcCooledBeamType; class IfcCoolingTower; class IfcCoolingTowerType; class IfcCoordinateOperation; class IfcCoordinateReferenceSystem; class IfcCostItem; class IfcCostSchedule; class IfcCostValue; class IfcCovering; class IfcCoveringType; class IfcCrewResource; class IfcCrewResourceType; class IfcCsgPrimitive3D; class IfcCsgSolid; class IfcCurrencyRelationship; class IfcCurtainWall; class IfcCurtainWallType; class IfcCurve; class IfcCurveBoundedPlane; class IfcCurveBoundedSurface; class IfcCurveStyle; class IfcCurveStyleFont; class IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern; class IfcCylindricalSurface; class IfcDamper; class IfcDamperType; class IfcDerivedProfileDef; class IfcDerivedUnit; class IfcDerivedUnitElement; class IfcDimensionalExponents; class IfcDirection; class IfcDiscreteAccessory; class IfcDiscreteAccessoryType; class IfcDistributionChamberElement; class IfcDistributionChamberElementType; class IfcDistributionCircuit; class IfcDistributionControlElement; class IfcDistributionControlElementType; class IfcDistributionElement; class IfcDistributionElementType; class IfcDistributionFlowElement; class IfcDistributionFlowElementType; class IfcDistributionPort; class IfcDistributionSystem; class IfcDocumentInformation; class IfcDocumentInformationRelationship; class IfcDocumentReference; class IfcDoor; class IfcDoorLiningProperties; class IfcDoorPanelProperties; class IfcDoorStandardCase; class IfcDoorStyle; class IfcDoorType; class IfcDraughtingPreDefinedColour; class IfcDraughtingPreDefinedCurveFont; class IfcDuctFitting; class IfcDuctFittingType; class IfcDuctSegment; class IfcDuctSegmentType; class IfcDuctSilencer; class IfcDuctSilencerType; class IfcEdge; class IfcEdgeCurve; class IfcEdgeLoop; class IfcElectricAppliance; class IfcElectricApplianceType; class IfcElectricDistributionBoard; class IfcElectricDistributionBoardType; class IfcElectricFlowStorageDevice; class IfcElectricFlowStorageDeviceType; class IfcElectricGenerator; class IfcElectricGeneratorType; class IfcElectricMotor; class IfcElectricMotorType; class IfcElectricTimeControl; class IfcElectricTimeControlType; class IfcElement; class IfcElementAssembly; class IfcElementAssemblyType; class IfcElementComponent; class IfcElementComponentType; class IfcElementQuantity; class IfcElementType; class IfcElementarySurface; class IfcEllipse; class IfcEllipseProfileDef; class IfcEnergyConversionDevice; class IfcEnergyConversionDeviceType; class IfcEngine; class IfcEngineType; class IfcEvaporativeCooler; class IfcEvaporativeCoolerType; class IfcEvaporator; class IfcEvaporatorType; class IfcEvent; class IfcEventTime; class IfcEventType; class IfcExtendedProperties; class IfcExternalInformation; class IfcExternalReference; class IfcExternalReferenceRelationship; class IfcExternalSpatialElement; class IfcExternalSpatialStructureElement; class IfcExternallyDefinedHatchStyle; class IfcExternallyDefinedSurfaceStyle; class IfcExternallyDefinedTextFont; class IfcExtrudedAreaSolid; class IfcExtrudedAreaSolidTapered; class IfcFace; class IfcFaceBasedSurfaceModel; class IfcFaceBound; class IfcFaceOuterBound; class IfcFaceSurface; class IfcFacetedBrep; class IfcFacetedBrepWithVoids; class IfcFailureConnectionCondition; class IfcFan; class IfcFanType; class IfcFastener; class IfcFastenerType; class IfcFeatureElement; class IfcFeatureElementAddition; class IfcFeatureElementSubtraction; class IfcFillAreaStyle; class IfcFillAreaStyleHatching; class IfcFillAreaStyleTiles; class IfcFilter; class IfcFilterType; class IfcFireSuppressionTerminal; class IfcFireSuppressionTerminalType; class IfcFixedReferenceSweptAreaSolid; class IfcFlowController; class IfcFlowControllerType; class IfcFlowFitting; class IfcFlowFittingType; class IfcFlowInstrument; class IfcFlowInstrumentType; class IfcFlowMeter; class IfcFlowMeterType; class IfcFlowMovingDevice; class IfcFlowMovingDeviceType; class IfcFlowSegment; class IfcFlowSegmentType; class IfcFlowStorageDevice; class IfcFlowStorageDeviceType; class IfcFlowTerminal; class IfcFlowTerminalType; class IfcFlowTreatmentDevice; class IfcFlowTreatmentDeviceType; class IfcFooting; class IfcFootingType; class IfcFurnishingElement; class IfcFurnishingElementType; class IfcFurniture; class IfcFurnitureType; class IfcGeographicElement; class IfcGeographicElementType; class IfcGeometricCurveSet; class IfcGeometricRepresentationContext; class IfcGeometricRepresentationItem; class IfcGeometricRepresentationSubContext; class IfcGeometricSet; class IfcGrid; class IfcGridAxis; class IfcGridPlacement; class IfcGroup; class IfcHalfSpaceSolid; class IfcHeatExchanger; class IfcHeatExchangerType; class IfcHumidifier; class IfcHumidifierType; class IfcIShapeProfileDef; class IfcImageTexture; class IfcIndexedColourMap; class IfcIndexedPolyCurve; class IfcIndexedTextureMap; class IfcIndexedTriangleTextureMap; class IfcInterceptor; class IfcInterceptorType; class IfcInventory; class IfcIrregularTimeSeries; class IfcIrregularTimeSeriesValue; class IfcJunctionBox; class IfcJunctionBoxType; class IfcLShapeProfileDef; class IfcLaborResource; class IfcLaborResourceType; class IfcLagTime; class IfcLamp; class IfcLampType; class IfcLibraryInformation; class IfcLibraryReference; class IfcLightDistributionData; class IfcLightFixture; class IfcLightFixtureType; class IfcLightIntensityDistribution; class IfcLightSource; class IfcLightSourceAmbient; class IfcLightSourceDirectional; class IfcLightSourceGoniometric; class IfcLightSourcePositional; class IfcLightSourceSpot; class IfcLine; class IfcLocalPlacement; class IfcLoop; class IfcManifoldSolidBrep; class IfcMapConversion; class IfcMappedItem; class IfcMaterial; class IfcMaterialClassificationRelationship; class IfcMaterialConstituent; class IfcMaterialConstituentSet; class IfcMaterialDefinition; class IfcMaterialDefinitionRepresentation; class IfcMaterialLayer; class IfcMaterialLayerSet; class IfcMaterialLayerSetUsage; class IfcMaterialLayerWithOffsets; class IfcMaterialList; class IfcMaterialProfile; class IfcMaterialProfileSet; class IfcMaterialProfileSetUsage; class IfcMaterialProfileSetUsageTapering; class IfcMaterialProfileWithOffsets; class IfcMaterialProperties; class IfcMaterialRelationship; class IfcMaterialUsageDefinition; class IfcMeasureWithUnit; class IfcMechanicalFastener; class IfcMechanicalFastenerType; class IfcMedicalDevice; class IfcMedicalDeviceType; class IfcMember; class IfcMemberStandardCase; class IfcMemberType; class IfcMetric; class IfcMirroredProfileDef; class IfcMonetaryUnit; class IfcMotorConnection; class IfcMotorConnectionType; class IfcNamedUnit; class IfcObject; class IfcObjectDefinition; class IfcObjectPlacement; class IfcObjective; class IfcOccupant; class IfcOffsetCurve2D; class IfcOffsetCurve3D; class IfcOpenShell; class IfcOpeningElement; class IfcOpeningStandardCase; class IfcOrganization; class IfcOrganizationRelationship; class IfcOrientedEdge; class IfcOuterBoundaryCurve; class IfcOutlet; class IfcOutletType; class IfcOwnerHistory; class IfcParameterizedProfileDef; class IfcPath; class IfcPcurve; class IfcPerformanceHistory; class IfcPermeableCoveringProperties; class IfcPermit; class IfcPerson; class IfcPersonAndOrganization; class IfcPhysicalComplexQuantity; class IfcPhysicalQuantity; class IfcPhysicalSimpleQuantity; class IfcPile; class IfcPileType; class IfcPipeFitting; class IfcPipeFittingType; class IfcPipeSegment; class IfcPipeSegmentType; class IfcPixelTexture; class IfcPlacement; class IfcPlanarBox; class IfcPlanarExtent; class IfcPlane; class IfcPlate; class IfcPlateStandardCase; class IfcPlateType; class IfcPoint; class IfcPointOnCurve; class IfcPointOnSurface; class IfcPolyLoop; class IfcPolygonalBoundedHalfSpace; class IfcPolyline; class IfcPort; class IfcPostalAddress; class IfcPreDefinedColour; class IfcPreDefinedCurveFont; class IfcPreDefinedItem; class IfcPreDefinedProperties; class IfcPreDefinedPropertySet; class IfcPreDefinedTextFont; class IfcPresentationItem; class IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle; class IfcPresentationStyle; class IfcPresentationStyleAssignment; class IfcProcedure; class IfcProcedureType; class IfcProcess; class IfcProduct; class IfcProductDefinitionShape; class IfcProductRepresentation; class IfcProfileDef; class IfcProfileProperties; class IfcProject; class IfcProjectLibrary; class IfcProjectOrder; class IfcProjectedCRS; class IfcProjectionElement; class IfcProperty; class IfcPropertyAbstraction; class IfcPropertyBoundedValue; class IfcPropertyDefinition; class IfcPropertyDependencyRelationship; class IfcPropertyEnumeratedValue; class IfcPropertyEnumeration; class IfcPropertyListValue; class IfcPropertyReferenceValue; class IfcPropertySet; class IfcPropertySetDefinition; class IfcPropertySetTemplate; class IfcPropertySingleValue; class IfcPropertyTableValue; class IfcPropertyTemplate; class IfcPropertyTemplateDefinition; class IfcProtectiveDevice; class IfcProtectiveDeviceTrippingUnit; class IfcProtectiveDeviceTrippingUnitType; class IfcProtectiveDeviceType; class IfcProxy; class IfcPump; class IfcPumpType; class IfcQuantityArea; class IfcQuantityCount; class IfcQuantityLength; class IfcQuantitySet; class IfcQuantityTime; class IfcQuantityVolume; class IfcQuantityWeight; class IfcRailing; class IfcRailingType; class IfcRamp; class IfcRampFlight; class IfcRampFlightType; class IfcRampType; class IfcRationalBSplineCurveWithKnots; class IfcRationalBSplineSurfaceWithKnots; class IfcRectangleHollowProfileDef; class IfcRectangleProfileDef; class IfcRectangularPyramid; class IfcRectangularTrimmedSurface; class IfcRecurrencePattern; class IfcReference; class IfcRegularTimeSeries; class IfcReinforcementBarProperties; class IfcReinforcementDefinitionProperties; class IfcReinforcingBar; class IfcReinforcingBarType; class IfcReinforcingElement; class IfcReinforcingElementType; class IfcReinforcingMesh; class IfcReinforcingMeshType; class IfcRelAggregates; class IfcRelAssigns; class IfcRelAssignsToActor; class IfcRelAssignsToControl; class IfcRelAssignsToGroup; class IfcRelAssignsToGroupByFactor; class IfcRelAssignsToProcess; class IfcRelAssignsToProduct; class IfcRelAssignsToResource; class IfcRelAssociates; class IfcRelAssociatesApproval; class IfcRelAssociatesClassification; class IfcRelAssociatesConstraint; class IfcRelAssociatesDocument; class IfcRelAssociatesLibrary; class IfcRelAssociatesMaterial; class IfcRelConnects; class IfcRelConnectsElements; class IfcRelConnectsPathElements; class IfcRelConnectsPortToElement; class IfcRelConnectsPorts; class IfcRelConnectsStructuralActivity; class IfcRelConnectsStructuralMember; class IfcRelConnectsWithEccentricity; class IfcRelConnectsWithRealizingElements; class IfcRelContainedInSpatialStructure; class IfcRelCoversBldgElements; class IfcRelCoversSpaces; class IfcRelDeclares; class IfcRelDecomposes; class IfcRelDefines; class IfcRelDefinesByObject; class IfcRelDefinesByProperties; class IfcRelDefinesByTemplate; class IfcRelDefinesByType; class IfcRelFillsElement; class IfcRelFlowControlElements; class IfcRelInterferesElements; class IfcRelNests; class IfcRelProjectsElement; class IfcRelReferencedInSpatialStructure; class IfcRelSequence; class IfcRelServicesBuildings; class IfcRelSpaceBoundary; class IfcRelSpaceBoundary1stLevel; class IfcRelSpaceBoundary2ndLevel; class IfcRelVoidsElement; class IfcRelationship; class IfcReparametrisedCompositeCurveSegment; class IfcRepresentation; class IfcRepresentationContext; class IfcRepresentationItem; class IfcRepresentationMap; class IfcResource; class IfcResourceApprovalRelationship; class IfcResourceConstraintRelationship; class IfcResourceLevelRelationship; class IfcResourceTime; class IfcRevolvedAreaSolid; class IfcRevolvedAreaSolidTapered; class IfcRightCircularCone; class IfcRightCircularCylinder; class IfcRoof; class IfcRoofType; class IfcRoot; class IfcRoundedRectangleProfileDef; class IfcSIUnit; class IfcSanitaryTerminal; class IfcSanitaryTerminalType; class IfcSchedulingTime; class IfcSectionProperties; class IfcSectionReinforcementProperties; class IfcSectionedSpine; class IfcSensor; class IfcSensorType; class IfcShadingDevice; class IfcShadingDeviceType; class IfcShapeAspect; class IfcShapeModel; class IfcShapeRepresentation; class IfcShellBasedSurfaceModel; class IfcSimpleProperty; class IfcSimplePropertyTemplate; class IfcSite; class IfcSlab; class IfcSlabElementedCase; class IfcSlabStandardCase; class IfcSlabType; class IfcSlippageConnectionCondition; class IfcSolarDevice; class IfcSolarDeviceType; class IfcSolidModel; class IfcSpace; class IfcSpaceHeater; class IfcSpaceHeaterType; class IfcSpaceType; class IfcSpatialElement; class IfcSpatialElementType; class IfcSpatialStructureElement; class IfcSpatialStructureElementType; class IfcSpatialZone; class IfcSpatialZoneType; class IfcSphere; class IfcStackTerminal; class IfcStackTerminalType; class IfcStair; class IfcStairFlight; class IfcStairFlightType; class IfcStairType; class IfcStructuralAction; class IfcStructuralActivity; class IfcStructuralAnalysisModel; class IfcStructuralConnection; class IfcStructuralConnectionCondition; class IfcStructuralCurveAction; class IfcStructuralCurveConnection; class IfcStructuralCurveMember; class IfcStructuralCurveMemberVarying; class IfcStructuralCurveReaction; class IfcStructuralItem; class IfcStructuralLinearAction; class IfcStructuralLoad; class IfcStructuralLoadCase; class IfcStructuralLoadConfiguration; class IfcStructuralLoadGroup; class IfcStructuralLoadLinearForce; class IfcStructuralLoadOrResult; class IfcStructuralLoadPlanarForce; class IfcStructuralLoadSingleDisplacement; class IfcStructuralLoadSingleDisplacementDistortion; class IfcStructuralLoadSingleForce; class IfcStructuralLoadSingleForceWarping; class IfcStructuralLoadStatic; class IfcStructuralLoadTemperature; class IfcStructuralMember; class IfcStructuralPlanarAction; class IfcStructuralPointAction; class IfcStructuralPointConnection; class IfcStructuralPointReaction; class IfcStructuralReaction; class IfcStructuralResultGroup; class IfcStructuralSurfaceAction; class IfcStructuralSurfaceConnection; class IfcStructuralSurfaceMember; class IfcStructuralSurfaceMemberVarying; class IfcStructuralSurfaceReaction; class IfcStyleModel; class IfcStyledItem; class IfcStyledRepresentation; class IfcSubContractResource; class IfcSubContractResourceType; class IfcSubedge; class IfcSurface; class IfcSurfaceCurveSweptAreaSolid; class IfcSurfaceFeature; class IfcSurfaceOfLinearExtrusion; class IfcSurfaceOfRevolution; class IfcSurfaceReinforcementArea; class IfcSurfaceStyle; class IfcSurfaceStyleLighting; class IfcSurfaceStyleRefraction; class IfcSurfaceStyleRendering; class IfcSurfaceStyleShading; class IfcSurfaceStyleWithTextures; class IfcSurfaceTexture; class IfcSweptAreaSolid; class IfcSweptDiskSolid; class IfcSweptDiskSolidPolygonal; class IfcSweptSurface; class IfcSwitchingDevice; class IfcSwitchingDeviceType; class IfcSystem; class IfcSystemFurnitureElement; class IfcSystemFurnitureElementType; class IfcTShapeProfileDef; class IfcTable; class IfcTableColumn; class IfcTableRow; class IfcTank; class IfcTankType; class IfcTask; class IfcTaskTime; class IfcTaskTimeRecurring; class IfcTaskType; class IfcTelecomAddress; class IfcTendon; class IfcTendonAnchor; class IfcTendonAnchorType; class IfcTendonType; class IfcTessellatedFaceSet; class IfcTessellatedItem; class IfcTextLiteral; class IfcTextLiteralWithExtent; class IfcTextStyle; class IfcTextStyleFontModel; class IfcTextStyleForDefinedFont; class IfcTextStyleTextModel; class IfcTextureCoordinate; class IfcTextureCoordinateGenerator; class IfcTextureMap; class IfcTextureVertex; class IfcTextureVertexList; class IfcTimePeriod; class IfcTimeSeries; class IfcTimeSeriesValue; class IfcTopologicalRepresentationItem; class IfcTopologyRepresentation; class IfcTransformer; class IfcTransformerType; class IfcTransportElement; class IfcTransportElementType; class IfcTrapeziumProfileDef; class IfcTriangulatedFaceSet; class IfcTrimmedCurve; class IfcTubeBundle; class IfcTubeBundleType; class IfcTypeObject; class IfcTypeProcess; class IfcTypeProduct; class IfcTypeResource; class IfcUShapeProfileDef; class IfcUnitAssignment; class IfcUnitaryControlElement; class IfcUnitaryControlElementType; class IfcUnitaryEquipment; class IfcUnitaryEquipmentType; class IfcValve; class IfcValveType; class IfcVector; class IfcVertex; class IfcVertexLoop; class IfcVertexPoint; class IfcVibrationIsolator; class IfcVibrationIsolatorType; class IfcVirtualElement; class IfcVirtualGridIntersection; class IfcVoidingFeature; class IfcWall; class IfcWallElementedCase; class IfcWallStandardCase; class IfcWallType; class IfcWasteTerminal; class IfcWasteTerminalType; class IfcWindow; class IfcWindowLiningProperties; class IfcWindowPanelProperties; class IfcWindowStandardCase; class IfcWindowStyle; class IfcWindowType; class IfcWorkCalendar; class IfcWorkControl; class IfcWorkPlan; class IfcWorkSchedule; class IfcWorkTime; class IfcZShapeProfileDef; class IfcZone; class IfcAbsorbedDoseMeasure; class IfcAccelerationMeasure; class IfcAmountOfSubstanceMeasure; class IfcAngularVelocityMeasure; class IfcArcIndex; class IfcAreaDensityMeasure; class IfcAreaMeasure; class IfcBinary; class IfcBoolean; class IfcBoxAlignment; class IfcCardinalPointReference; class IfcComplexNumber; class IfcCompoundPlaneAngleMeasure; class IfcContextDependentMeasure; class IfcCountMeasure; class IfcCurvatureMeasure; class IfcDate; class IfcDateTime; class IfcDayInMonthNumber; class IfcDayInWeekNumber; class IfcDescriptiveMeasure; class IfcDimensionCount; class IfcDoseEquivalentMeasure; class IfcDuration; class IfcDynamicViscosityMeasure; class IfcElectricCapacitanceMeasure; class IfcElectricChargeMeasure; class IfcElectricConductanceMeasure; class IfcElectricCurrentMeasure; class IfcElectricResistanceMeasure; class IfcElectricVoltageMeasure; class IfcEnergyMeasure; class IfcFontStyle; class IfcFontVariant; class IfcFontWeight; class IfcForceMeasure; class IfcFrequencyMeasure; class IfcGloballyUniqueId; class IfcHeatFluxDensityMeasure; class IfcHeatingValueMeasure; class IfcIdentifier; class IfcIlluminanceMeasure; class IfcInductanceMeasure; class IfcInteger; class IfcIntegerCountRateMeasure; class IfcIonConcentrationMeasure; class IfcIsothermalMoistureCapacityMeasure; class IfcKinematicViscosityMeasure; class IfcLabel; class IfcLanguageId; class IfcLengthMeasure; class IfcLineIndex; class IfcLinearForceMeasure; class IfcLinearMomentMeasure; class IfcLinearStiffnessMeasure; class IfcLinearVelocityMeasure; class IfcLogical; class IfcLuminousFluxMeasure; class IfcLuminousIntensityDistributionMeasure; class IfcLuminousIntensityMeasure; class IfcMagneticFluxDensityMeasure; class IfcMagneticFluxMeasure; class IfcMassDensityMeasure; class IfcMassFlowRateMeasure; class IfcMassMeasure; class IfcMassPerLengthMeasure; class IfcModulusOfElasticityMeasure; class IfcModulusOfLinearSubgradeReactionMeasure; class IfcModulusOfRotationalSubgradeReactionMeasure; class IfcModulusOfSubgradeReactionMeasure; class IfcMoistureDiffusivityMeasure; class IfcMolecularWeightMeasure; class IfcMomentOfInertiaMeasure; class IfcMonetaryMeasure; class IfcMonthInYearNumber; class IfcNonNegativeLengthMeasure; class IfcNormalisedRatioMeasure; class IfcNumericMeasure; class IfcPHMeasure; class IfcParameterValue; class IfcPlanarForceMeasure; class IfcPlaneAngleMeasure; class IfcPositiveInteger; class IfcPositiveLengthMeasure; class IfcPositivePlaneAngleMeasure; class IfcPositiveRatioMeasure; class IfcPowerMeasure; class IfcPresentableText; class IfcPressureMeasure; class IfcPropertySetDefinitionSet; class IfcRadioActivityMeasure; class IfcRatioMeasure; class IfcReal; class IfcRotationalFrequencyMeasure; class IfcRotationalMassMeasure; class IfcRotationalStiffnessMeasure; class IfcSectionModulusMeasure; class IfcSectionalAreaIntegralMeasure; class IfcShearModulusMeasure; class IfcSolidAngleMeasure; class IfcSoundPowerLevelMeasure; class IfcSoundPowerMeasure; class IfcSoundPressureLevelMeasure; class IfcSoundPressureMeasure; class IfcSpecificHeatCapacityMeasure; class IfcSpecularExponent; class IfcSpecularRoughness; class IfcStrippedOptional; class IfcTemperatureGradientMeasure; class IfcTemperatureRateOfChangeMeasure; class IfcText; class IfcTextAlignment; class IfcTextDecoration; class IfcTextFontName; class IfcTextTransformation; class IfcThermalAdmittanceMeasure; class IfcThermalConductivityMeasure; class IfcThermalExpansionCoefficientMeasure; class IfcThermalResistanceMeasure; class IfcThermalTransmittanceMeasure; class IfcThermodynamicTemperatureMeasure; class IfcTime; class IfcTimeMeasure; class IfcTimeStamp; class IfcTorqueMeasure; class IfcURIReference; class IfcVaporPermeabilityMeasure; class IfcVolumeMeasure; class IfcVolumetricFlowRateMeasure; class IfcWarpingConstantMeasure; class IfcWarpingMomentMeasure; +class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; class IfcActuatorType; class IfcAddress; class IfcAdvancedBrep; class IfcAdvancedBrepWithVoids; class IfcAdvancedFace; class IfcAirTerminal; class IfcAirTerminalBox; class IfcAirTerminalBoxType; class IfcAirTerminalType; class IfcAirToAirHeatRecovery; class IfcAirToAirHeatRecoveryType; class IfcAlarm; class IfcAlarmType; class IfcAnnotation; class IfcAnnotationFillArea; class IfcApplication; class IfcAppliedValue; class IfcApproval; class IfcApprovalRelationship; class IfcArbitraryClosedProfileDef; class IfcArbitraryOpenProfileDef; class IfcArbitraryProfileDefWithVoids; class IfcAsset; class IfcAsymmetricIShapeProfileDef; class IfcAudioVisualAppliance; class IfcAudioVisualApplianceType; class IfcAxis1Placement; class IfcAxis2Placement2D; class IfcAxis2Placement3D; class IfcBSplineCurve; class IfcBSplineCurveWithKnots; class IfcBSplineSurface; class IfcBSplineSurfaceWithKnots; class IfcBeam; class IfcBeamStandardCase; class IfcBeamType; class IfcBlobTexture; class IfcBlock; class IfcBoiler; class IfcBoilerType; class IfcBooleanClippingResult; class IfcBooleanResult; class IfcBoundaryCondition; class IfcBoundaryCurve; class IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping; class IfcBoundedCurve; class IfcBoundedSurface; class IfcBoundingBox; class IfcBoxedHalfSpace; class IfcBuilding; class IfcBuildingElement; class IfcBuildingElementPart; class IfcBuildingElementPartType; class IfcBuildingElementProxy; class IfcBuildingElementProxyType; class IfcBuildingElementType; class IfcBuildingStorey; class IfcBuildingSystem; class IfcBurner; class IfcBurnerType; class IfcCShapeProfileDef; class IfcCableCarrierFitting; class IfcCableCarrierFittingType; class IfcCableCarrierSegment; class IfcCableCarrierSegmentType; class IfcCableFitting; class IfcCableFittingType; class IfcCableSegment; class IfcCableSegmentType; class IfcCartesianPoint; class IfcCartesianPointList; class IfcCartesianPointList2D; class IfcCartesianPointList3D; class IfcCartesianTransformationOperator; class IfcCartesianTransformationOperator2D; class IfcCartesianTransformationOperator2DnonUniform; class IfcCartesianTransformationOperator3D; class IfcCartesianTransformationOperator3DnonUniform; class IfcCenterLineProfileDef; class IfcChiller; class IfcChillerType; class IfcChimney; class IfcChimneyType; class IfcCircle; class IfcCircleHollowProfileDef; class IfcCircleProfileDef; class IfcCivilElement; class IfcCivilElementType; class IfcClassification; class IfcClassificationReference; class IfcClosedShell; class IfcCoil; class IfcCoilType; class IfcColourRgb; class IfcColourRgbList; class IfcColourSpecification; class IfcColumn; class IfcColumnStandardCase; class IfcColumnType; class IfcCommunicationsAppliance; class IfcCommunicationsApplianceType; class IfcComplexProperty; class IfcComplexPropertyTemplate; class IfcCompositeCurve; class IfcCompositeCurveOnSurface; class IfcCompositeCurveSegment; class IfcCompositeProfileDef; class IfcCompressor; class IfcCompressorType; class IfcCondenser; class IfcCondenserType; class IfcConic; class IfcConnectedFaceSet; class IfcConnectionCurveGeometry; class IfcConnectionGeometry; class IfcConnectionPointEccentricity; class IfcConnectionPointGeometry; class IfcConnectionSurfaceGeometry; class IfcConnectionVolumeGeometry; class IfcConstraint; class IfcConstructionEquipmentResource; class IfcConstructionEquipmentResourceType; class IfcConstructionMaterialResource; class IfcConstructionMaterialResourceType; class IfcConstructionProductResource; class IfcConstructionProductResourceType; class IfcConstructionResource; class IfcConstructionResourceType; class IfcContext; class IfcContextDependentUnit; class IfcControl; class IfcController; class IfcControllerType; class IfcConversionBasedUnit; class IfcConversionBasedUnitWithOffset; class IfcCooledBeam; class IfcCooledBeamType; class IfcCoolingTower; class IfcCoolingTowerType; class IfcCoordinateOperation; class IfcCoordinateReferenceSystem; class IfcCostItem; class IfcCostSchedule; class IfcCostValue; class IfcCovering; class IfcCoveringType; class IfcCrewResource; class IfcCrewResourceType; class IfcCsgPrimitive3D; class IfcCsgSolid; class IfcCurrencyRelationship; class IfcCurtainWall; class IfcCurtainWallType; class IfcCurve; class IfcCurveBoundedPlane; class IfcCurveBoundedSurface; class IfcCurveStyle; class IfcCurveStyleFont; class IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern; class IfcCylindricalSurface; class IfcDamper; class IfcDamperType; class IfcDerivedProfileDef; class IfcDerivedUnit; class IfcDerivedUnitElement; class IfcDimensionalExponents; class IfcDirection; class IfcDiscreteAccessory; class IfcDiscreteAccessoryType; class IfcDistributionChamberElement; class IfcDistributionChamberElementType; class IfcDistributionCircuit; class IfcDistributionControlElement; class IfcDistributionControlElementType; class IfcDistributionElement; class IfcDistributionElementType; class IfcDistributionFlowElement; class IfcDistributionFlowElementType; class IfcDistributionPort; class IfcDistributionSystem; class IfcDocumentInformation; class IfcDocumentInformationRelationship; class IfcDocumentReference; class IfcDoor; class IfcDoorLiningProperties; class IfcDoorPanelProperties; class IfcDoorStandardCase; class IfcDoorStyle; class IfcDoorType; class IfcDraughtingPreDefinedColour; class IfcDraughtingPreDefinedCurveFont; class IfcDuctFitting; class IfcDuctFittingType; class IfcDuctSegment; class IfcDuctSegmentType; class IfcDuctSilencer; class IfcDuctSilencerType; class IfcEdge; class IfcEdgeCurve; class IfcEdgeLoop; class IfcElectricAppliance; class IfcElectricApplianceType; class IfcElectricDistributionBoard; class IfcElectricDistributionBoardType; class IfcElectricFlowStorageDevice; class IfcElectricFlowStorageDeviceType; class IfcElectricGenerator; class IfcElectricGeneratorType; class IfcElectricMotor; class IfcElectricMotorType; class IfcElectricTimeControl; class IfcElectricTimeControlType; class IfcElement; class IfcElementAssembly; class IfcElementAssemblyType; class IfcElementComponent; class IfcElementComponentType; class IfcElementQuantity; class IfcElementType; class IfcElementarySurface; class IfcEllipse; class IfcEllipseProfileDef; class IfcEnergyConversionDevice; class IfcEnergyConversionDeviceType; class IfcEngine; class IfcEngineType; class IfcEvaporativeCooler; class IfcEvaporativeCoolerType; class IfcEvaporator; class IfcEvaporatorType; class IfcEvent; class IfcEventTime; class IfcEventType; class IfcExtendedProperties; class IfcExternalInformation; class IfcExternalReference; class IfcExternalReferenceRelationship; class IfcExternalSpatialElement; class IfcExternalSpatialStructureElement; class IfcExternallyDefinedHatchStyle; class IfcExternallyDefinedSurfaceStyle; class IfcExternallyDefinedTextFont; class IfcExtrudedAreaSolid; class IfcExtrudedAreaSolidTapered; class IfcFace; class IfcFaceBasedSurfaceModel; class IfcFaceBound; class IfcFaceOuterBound; class IfcFaceSurface; class IfcFacetedBrep; class IfcFacetedBrepWithVoids; class IfcFailureConnectionCondition; class IfcFan; class IfcFanType; class IfcFastener; class IfcFastenerType; class IfcFeatureElement; class IfcFeatureElementAddition; class IfcFeatureElementSubtraction; class IfcFillAreaStyle; class IfcFillAreaStyleHatching; class IfcFillAreaStyleTiles; class IfcFilter; class IfcFilterType; class IfcFireSuppressionTerminal; class IfcFireSuppressionTerminalType; class IfcFixedReferenceSweptAreaSolid; class IfcFlowController; class IfcFlowControllerType; class IfcFlowFitting; class IfcFlowFittingType; class IfcFlowInstrument; class IfcFlowInstrumentType; class IfcFlowMeter; class IfcFlowMeterType; class IfcFlowMovingDevice; class IfcFlowMovingDeviceType; class IfcFlowSegment; class IfcFlowSegmentType; class IfcFlowStorageDevice; class IfcFlowStorageDeviceType; class IfcFlowTerminal; class IfcFlowTerminalType; class IfcFlowTreatmentDevice; class IfcFlowTreatmentDeviceType; class IfcFooting; class IfcFootingType; class IfcFurnishingElement; class IfcFurnishingElementType; class IfcFurniture; class IfcFurnitureType; class IfcGeographicElement; class IfcGeographicElementType; class IfcGeometricCurveSet; class IfcGeometricRepresentationContext; class IfcGeometricRepresentationItem; class IfcGeometricRepresentationSubContext; class IfcGeometricSet; class IfcGrid; class IfcGridAxis; class IfcGridPlacement; class IfcGroup; class IfcHalfSpaceSolid; class IfcHeatExchanger; class IfcHeatExchangerType; class IfcHumidifier; class IfcHumidifierType; class IfcIShapeProfileDef; class IfcImageTexture; class IfcIndexedColourMap; class IfcIndexedPolyCurve; class IfcIndexedPolygonalFace; class IfcIndexedPolygonalFaceWithVoids; class IfcIndexedTextureMap; class IfcIndexedTriangleTextureMap; class IfcInterceptor; class IfcInterceptorType; class IfcIntersectionCurve; class IfcInventory; class IfcIrregularTimeSeries; class IfcIrregularTimeSeriesValue; class IfcJunctionBox; class IfcJunctionBoxType; class IfcLShapeProfileDef; class IfcLaborResource; class IfcLaborResourceType; class IfcLagTime; class IfcLamp; class IfcLampType; class IfcLibraryInformation; class IfcLibraryReference; class IfcLightDistributionData; class IfcLightFixture; class IfcLightFixtureType; class IfcLightIntensityDistribution; class IfcLightSource; class IfcLightSourceAmbient; class IfcLightSourceDirectional; class IfcLightSourceGoniometric; class IfcLightSourcePositional; class IfcLightSourceSpot; class IfcLine; class IfcLocalPlacement; class IfcLoop; class IfcManifoldSolidBrep; class IfcMapConversion; class IfcMappedItem; class IfcMaterial; class IfcMaterialClassificationRelationship; class IfcMaterialConstituent; class IfcMaterialConstituentSet; class IfcMaterialDefinition; class IfcMaterialDefinitionRepresentation; class IfcMaterialLayer; class IfcMaterialLayerSet; class IfcMaterialLayerSetUsage; class IfcMaterialLayerWithOffsets; class IfcMaterialList; class IfcMaterialProfile; class IfcMaterialProfileSet; class IfcMaterialProfileSetUsage; class IfcMaterialProfileSetUsageTapering; class IfcMaterialProfileWithOffsets; class IfcMaterialProperties; class IfcMaterialRelationship; class IfcMaterialUsageDefinition; class IfcMeasureWithUnit; class IfcMechanicalFastener; class IfcMechanicalFastenerType; class IfcMedicalDevice; class IfcMedicalDeviceType; class IfcMember; class IfcMemberStandardCase; class IfcMemberType; class IfcMetric; class IfcMirroredProfileDef; class IfcMonetaryUnit; class IfcMotorConnection; class IfcMotorConnectionType; class IfcNamedUnit; class IfcObject; class IfcObjectDefinition; class IfcObjectPlacement; class IfcObjective; class IfcOccupant; class IfcOffsetCurve2D; class IfcOffsetCurve3D; class IfcOpenShell; class IfcOpeningElement; class IfcOpeningStandardCase; class IfcOrganization; class IfcOrganizationRelationship; class IfcOrientedEdge; class IfcOuterBoundaryCurve; class IfcOutlet; class IfcOutletType; class IfcOwnerHistory; class IfcParameterizedProfileDef; class IfcPath; class IfcPcurve; class IfcPerformanceHistory; class IfcPermeableCoveringProperties; class IfcPermit; class IfcPerson; class IfcPersonAndOrganization; class IfcPhysicalComplexQuantity; class IfcPhysicalQuantity; class IfcPhysicalSimpleQuantity; class IfcPile; class IfcPileType; class IfcPipeFitting; class IfcPipeFittingType; class IfcPipeSegment; class IfcPipeSegmentType; class IfcPixelTexture; class IfcPlacement; class IfcPlanarBox; class IfcPlanarExtent; class IfcPlane; class IfcPlate; class IfcPlateStandardCase; class IfcPlateType; class IfcPoint; class IfcPointOnCurve; class IfcPointOnSurface; class IfcPolyLoop; class IfcPolygonalBoundedHalfSpace; class IfcPolygonalFaceSet; class IfcPolyline; class IfcPort; class IfcPostalAddress; class IfcPreDefinedColour; class IfcPreDefinedCurveFont; class IfcPreDefinedItem; class IfcPreDefinedProperties; class IfcPreDefinedPropertySet; class IfcPreDefinedTextFont; class IfcPresentationItem; class IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle; class IfcPresentationStyle; class IfcPresentationStyleAssignment; class IfcProcedure; class IfcProcedureType; class IfcProcess; class IfcProduct; class IfcProductDefinitionShape; class IfcProductRepresentation; class IfcProfileDef; class IfcProfileProperties; class IfcProject; class IfcProjectLibrary; class IfcProjectOrder; class IfcProjectedCRS; class IfcProjectionElement; class IfcProperty; class IfcPropertyAbstraction; class IfcPropertyBoundedValue; class IfcPropertyDefinition; class IfcPropertyDependencyRelationship; class IfcPropertyEnumeratedValue; class IfcPropertyEnumeration; class IfcPropertyListValue; class IfcPropertyReferenceValue; class IfcPropertySet; class IfcPropertySetDefinition; class IfcPropertySetTemplate; class IfcPropertySingleValue; class IfcPropertyTableValue; class IfcPropertyTemplate; class IfcPropertyTemplateDefinition; class IfcProtectiveDevice; class IfcProtectiveDeviceTrippingUnit; class IfcProtectiveDeviceTrippingUnitType; class IfcProtectiveDeviceType; class IfcProxy; class IfcPump; class IfcPumpType; class IfcQuantityArea; class IfcQuantityCount; class IfcQuantityLength; class IfcQuantitySet; class IfcQuantityTime; class IfcQuantityVolume; class IfcQuantityWeight; class IfcRailing; class IfcRailingType; class IfcRamp; class IfcRampFlight; class IfcRampFlightType; class IfcRampType; class IfcRationalBSplineCurveWithKnots; class IfcRationalBSplineSurfaceWithKnots; class IfcRectangleHollowProfileDef; class IfcRectangleProfileDef; class IfcRectangularPyramid; class IfcRectangularTrimmedSurface; class IfcRecurrencePattern; class IfcReference; class IfcRegularTimeSeries; class IfcReinforcementBarProperties; class IfcReinforcementDefinitionProperties; class IfcReinforcingBar; class IfcReinforcingBarType; class IfcReinforcingElement; class IfcReinforcingElementType; class IfcReinforcingMesh; class IfcReinforcingMeshType; class IfcRelAggregates; class IfcRelAssigns; class IfcRelAssignsToActor; class IfcRelAssignsToControl; class IfcRelAssignsToGroup; class IfcRelAssignsToGroupByFactor; class IfcRelAssignsToProcess; class IfcRelAssignsToProduct; class IfcRelAssignsToResource; class IfcRelAssociates; class IfcRelAssociatesApproval; class IfcRelAssociatesClassification; class IfcRelAssociatesConstraint; class IfcRelAssociatesDocument; class IfcRelAssociatesLibrary; class IfcRelAssociatesMaterial; class IfcRelConnects; class IfcRelConnectsElements; class IfcRelConnectsPathElements; class IfcRelConnectsPortToElement; class IfcRelConnectsPorts; class IfcRelConnectsStructuralActivity; class IfcRelConnectsStructuralMember; class IfcRelConnectsWithEccentricity; class IfcRelConnectsWithRealizingElements; class IfcRelContainedInSpatialStructure; class IfcRelCoversBldgElements; class IfcRelCoversSpaces; class IfcRelDeclares; class IfcRelDecomposes; class IfcRelDefines; class IfcRelDefinesByObject; class IfcRelDefinesByProperties; class IfcRelDefinesByTemplate; class IfcRelDefinesByType; class IfcRelFillsElement; class IfcRelFlowControlElements; class IfcRelInterferesElements; class IfcRelNests; class IfcRelProjectsElement; class IfcRelReferencedInSpatialStructure; class IfcRelSequence; class IfcRelServicesBuildings; class IfcRelSpaceBoundary; class IfcRelSpaceBoundary1stLevel; class IfcRelSpaceBoundary2ndLevel; class IfcRelVoidsElement; class IfcRelationship; class IfcReparametrisedCompositeCurveSegment; class IfcRepresentation; class IfcRepresentationContext; class IfcRepresentationItem; class IfcRepresentationMap; class IfcResource; class IfcResourceApprovalRelationship; class IfcResourceConstraintRelationship; class IfcResourceLevelRelationship; class IfcResourceTime; class IfcRevolvedAreaSolid; class IfcRevolvedAreaSolidTapered; class IfcRightCircularCone; class IfcRightCircularCylinder; class IfcRoof; class IfcRoofType; class IfcRoot; class IfcRoundedRectangleProfileDef; class IfcSIUnit; class IfcSanitaryTerminal; class IfcSanitaryTerminalType; class IfcSchedulingTime; class IfcSeamCurve; class IfcSectionProperties; class IfcSectionReinforcementProperties; class IfcSectionedSpine; class IfcSensor; class IfcSensorType; class IfcShadingDevice; class IfcShadingDeviceType; class IfcShapeAspect; class IfcShapeModel; class IfcShapeRepresentation; class IfcShellBasedSurfaceModel; class IfcSimpleProperty; class IfcSimplePropertyTemplate; class IfcSite; class IfcSlab; class IfcSlabElementedCase; class IfcSlabStandardCase; class IfcSlabType; class IfcSlippageConnectionCondition; class IfcSolarDevice; class IfcSolarDeviceType; class IfcSolidModel; class IfcSpace; class IfcSpaceHeater; class IfcSpaceHeaterType; class IfcSpaceType; class IfcSpatialElement; class IfcSpatialElementType; class IfcSpatialStructureElement; class IfcSpatialStructureElementType; class IfcSpatialZone; class IfcSpatialZoneType; class IfcSphere; class IfcSphericalSurface; class IfcStackTerminal; class IfcStackTerminalType; class IfcStair; class IfcStairFlight; class IfcStairFlightType; class IfcStairType; class IfcStructuralAction; class IfcStructuralActivity; class IfcStructuralAnalysisModel; class IfcStructuralConnection; class IfcStructuralConnectionCondition; class IfcStructuralCurveAction; class IfcStructuralCurveConnection; class IfcStructuralCurveMember; class IfcStructuralCurveMemberVarying; class IfcStructuralCurveReaction; class IfcStructuralItem; class IfcStructuralLinearAction; class IfcStructuralLoad; class IfcStructuralLoadCase; class IfcStructuralLoadConfiguration; class IfcStructuralLoadGroup; class IfcStructuralLoadLinearForce; class IfcStructuralLoadOrResult; class IfcStructuralLoadPlanarForce; class IfcStructuralLoadSingleDisplacement; class IfcStructuralLoadSingleDisplacementDistortion; class IfcStructuralLoadSingleForce; class IfcStructuralLoadSingleForceWarping; class IfcStructuralLoadStatic; class IfcStructuralLoadTemperature; class IfcStructuralMember; class IfcStructuralPlanarAction; class IfcStructuralPointAction; class IfcStructuralPointConnection; class IfcStructuralPointReaction; class IfcStructuralReaction; class IfcStructuralResultGroup; class IfcStructuralSurfaceAction; class IfcStructuralSurfaceConnection; class IfcStructuralSurfaceMember; class IfcStructuralSurfaceMemberVarying; class IfcStructuralSurfaceReaction; class IfcStyleModel; class IfcStyledItem; class IfcStyledRepresentation; class IfcSubContractResource; class IfcSubContractResourceType; class IfcSubedge; class IfcSurface; class IfcSurfaceCurve; class IfcSurfaceCurveSweptAreaSolid; class IfcSurfaceFeature; class IfcSurfaceOfLinearExtrusion; class IfcSurfaceOfRevolution; class IfcSurfaceReinforcementArea; class IfcSurfaceStyle; class IfcSurfaceStyleLighting; class IfcSurfaceStyleRefraction; class IfcSurfaceStyleRendering; class IfcSurfaceStyleShading; class IfcSurfaceStyleWithTextures; class IfcSurfaceTexture; class IfcSweptAreaSolid; class IfcSweptDiskSolid; class IfcSweptDiskSolidPolygonal; class IfcSweptSurface; class IfcSwitchingDevice; class IfcSwitchingDeviceType; class IfcSystem; class IfcSystemFurnitureElement; class IfcSystemFurnitureElementType; class IfcTShapeProfileDef; class IfcTable; class IfcTableColumn; class IfcTableRow; class IfcTank; class IfcTankType; class IfcTask; class IfcTaskTime; class IfcTaskTimeRecurring; class IfcTaskType; class IfcTelecomAddress; class IfcTendon; class IfcTendonAnchor; class IfcTendonAnchorType; class IfcTendonType; class IfcTessellatedFaceSet; class IfcTessellatedItem; class IfcTextLiteral; class IfcTextLiteralWithExtent; class IfcTextStyle; class IfcTextStyleFontModel; class IfcTextStyleForDefinedFont; class IfcTextStyleTextModel; class IfcTextureCoordinate; class IfcTextureCoordinateGenerator; class IfcTextureMap; class IfcTextureVertex; class IfcTextureVertexList; class IfcTimePeriod; class IfcTimeSeries; class IfcTimeSeriesValue; class IfcTopologicalRepresentationItem; class IfcTopologyRepresentation; class IfcToroidalSurface; class IfcTransformer; class IfcTransformerType; class IfcTransportElement; class IfcTransportElementType; class IfcTrapeziumProfileDef; class IfcTriangulatedFaceSet; class IfcTrimmedCurve; class IfcTubeBundle; class IfcTubeBundleType; class IfcTypeObject; class IfcTypeProcess; class IfcTypeProduct; class IfcTypeResource; class IfcUShapeProfileDef; class IfcUnitAssignment; class IfcUnitaryControlElement; class IfcUnitaryControlElementType; class IfcUnitaryEquipment; class IfcUnitaryEquipmentType; class IfcValve; class IfcValveType; class IfcVector; class IfcVertex; class IfcVertexLoop; class IfcVertexPoint; class IfcVibrationIsolator; class IfcVibrationIsolatorType; class IfcVirtualElement; class IfcVirtualGridIntersection; class IfcVoidingFeature; class IfcWall; class IfcWallElementedCase; class IfcWallStandardCase; class IfcWallType; class IfcWasteTerminal; class IfcWasteTerminalType; class IfcWindow; class IfcWindowLiningProperties; class IfcWindowPanelProperties; class IfcWindowStandardCase; class IfcWindowStyle; class IfcWindowType; class IfcWorkCalendar; class IfcWorkControl; class IfcWorkPlan; class IfcWorkSchedule; class IfcWorkTime; class IfcZShapeProfileDef; class IfcZone; class IfcAbsorbedDoseMeasure; class IfcAccelerationMeasure; class IfcAmountOfSubstanceMeasure; class IfcAngularVelocityMeasure; class IfcArcIndex; class IfcAreaDensityMeasure; class IfcAreaMeasure; class IfcBinary; class IfcBoolean; class IfcBoxAlignment; class IfcCardinalPointReference; class IfcComplexNumber; class IfcCompoundPlaneAngleMeasure; class IfcContextDependentMeasure; class IfcCountMeasure; class IfcCurvatureMeasure; class IfcDate; class IfcDateTime; class IfcDayInMonthNumber; class IfcDayInWeekNumber; class IfcDescriptiveMeasure; class IfcDimensionCount; class IfcDoseEquivalentMeasure; class IfcDuration; class IfcDynamicViscosityMeasure; class IfcElectricCapacitanceMeasure; class IfcElectricChargeMeasure; class IfcElectricConductanceMeasure; class IfcElectricCurrentMeasure; class IfcElectricResistanceMeasure; class IfcElectricVoltageMeasure; class IfcEnergyMeasure; class IfcFontStyle; class IfcFontVariant; class IfcFontWeight; class IfcForceMeasure; class IfcFrequencyMeasure; class IfcGloballyUniqueId; class IfcHeatFluxDensityMeasure; class IfcHeatingValueMeasure; class IfcIdentifier; class IfcIlluminanceMeasure; class IfcInductanceMeasure; class IfcInteger; class IfcIntegerCountRateMeasure; class IfcIonConcentrationMeasure; class IfcIsothermalMoistureCapacityMeasure; class IfcKinematicViscosityMeasure; class IfcLabel; class IfcLanguageId; class IfcLengthMeasure; class IfcLineIndex; class IfcLinearForceMeasure; class IfcLinearMomentMeasure; class IfcLinearStiffnessMeasure; class IfcLinearVelocityMeasure; class IfcLogical; class IfcLuminousFluxMeasure; class IfcLuminousIntensityDistributionMeasure; class IfcLuminousIntensityMeasure; class IfcMagneticFluxDensityMeasure; class IfcMagneticFluxMeasure; class IfcMassDensityMeasure; class IfcMassFlowRateMeasure; class IfcMassMeasure; class IfcMassPerLengthMeasure; class IfcModulusOfElasticityMeasure; class IfcModulusOfLinearSubgradeReactionMeasure; class IfcModulusOfRotationalSubgradeReactionMeasure; class IfcModulusOfSubgradeReactionMeasure; class IfcMoistureDiffusivityMeasure; class IfcMolecularWeightMeasure; class IfcMomentOfInertiaMeasure; class IfcMonetaryMeasure; class IfcMonthInYearNumber; class IfcNonNegativeLengthMeasure; class IfcNormalisedRatioMeasure; class IfcNumericMeasure; class IfcPHMeasure; class IfcParameterValue; class IfcPlanarForceMeasure; class IfcPlaneAngleMeasure; class IfcPositiveInteger; class IfcPositiveLengthMeasure; class IfcPositivePlaneAngleMeasure; class IfcPositiveRatioMeasure; class IfcPowerMeasure; class IfcPresentableText; class IfcPressureMeasure; class IfcPropertySetDefinitionSet; class IfcRadioActivityMeasure; class IfcRatioMeasure; class IfcReal; class IfcRotationalFrequencyMeasure; class IfcRotationalMassMeasure; class IfcRotationalStiffnessMeasure; class IfcSectionModulusMeasure; class IfcSectionalAreaIntegralMeasure; class IfcShearModulusMeasure; class IfcSolidAngleMeasure; class IfcSoundPowerLevelMeasure; class IfcSoundPowerMeasure; class IfcSoundPressureLevelMeasure; class IfcSoundPressureMeasure; class IfcSpecificHeatCapacityMeasure; class IfcSpecularExponent; class IfcSpecularRoughness; class IfcTemperatureGradientMeasure; class IfcTemperatureRateOfChangeMeasure; class IfcText; class IfcTextAlignment; class IfcTextDecoration; class IfcTextFontName; class IfcTextTransformation; class IfcThermalAdmittanceMeasure; class IfcThermalConductivityMeasure; class IfcThermalExpansionCoefficientMeasure; class IfcThermalResistanceMeasure; class IfcThermalTransmittanceMeasure; class IfcThermodynamicTemperatureMeasure; class IfcTime; class IfcTimeMeasure; class IfcTimeStamp; class IfcTorqueMeasure; class IfcURIReference; class IfcVaporPermeabilityMeasure; class IfcVolumeMeasure; class IfcVolumetricFlowRateMeasure; class IfcWarpingConstantMeasure; class IfcWarpingMomentMeasure; /// The actor select type allows a person, or an organization, or a person associated with an organization to be referenced. /// @@ -1028,7 +1028,7 @@ namespace IfcBuildingElementProxyTypeEnum { /// USERDEFINED /// /// NOTDEFINED -typedef enum {IfcBuildingElementProxyType_COMPLEX, IfcBuildingElementProxyType_ELEMENT, IfcBuildingElementProxyType_PARTIAL, IfcBuildingElementProxyType_PROVISIONFORVOID, IfcBuildingElementProxyType_USERDEFINED, IfcBuildingElementProxyType_NOTDEFINED} IfcBuildingElementProxyTypeEnum; +typedef enum {IfcBuildingElementProxyType_COMPLEX, IfcBuildingElementProxyType_ELEMENT, IfcBuildingElementProxyType_PARTIAL, IfcBuildingElementProxyType_PROVISIONFORVOID, IfcBuildingElementProxyType_PROVISIONFORSPACE, IfcBuildingElementProxyType_USERDEFINED, IfcBuildingElementProxyType_NOTDEFINED} IfcBuildingElementProxyTypeEnum; IFC_PARSE_API const char* ToString(IfcBuildingElementProxyTypeEnum v); IFC_PARSE_API IfcBuildingElementProxyTypeEnum FromString(const std::string& s); } @@ -2598,7 +2598,7 @@ namespace IfcExternalSpatialElementTypeEnum { /// /// HISTORY New enumeration /// in IFC2x4. -typedef enum {IfcExternalSpatialElementType_EXTERNAL, IfcExternalSpatialElementType_EXTERNAL_EARTH, IfcExternalSpatialElementType_EXTERNAL_WATER, IfcExternalSpatialElementType_EXTERNAL_FIRE, IfcExternalSpatialElementType_USERDEFINED, IfcExternalSpatialElementType_NOTDEFIEND} IfcExternalSpatialElementTypeEnum; +typedef enum {IfcExternalSpatialElementType_EXTERNAL, IfcExternalSpatialElementType_EXTERNAL_EARTH, IfcExternalSpatialElementType_EXTERNAL_WATER, IfcExternalSpatialElementType_EXTERNAL_FIRE, IfcExternalSpatialElementType_USERDEFINED, IfcExternalSpatialElementType_NOTDEFINED} IfcExternalSpatialElementTypeEnum; IFC_PARSE_API const char* ToString(IfcExternalSpatialElementTypeEnum v); IFC_PARSE_API IfcExternalSpatialElementTypeEnum FromString(const std::string& s); } @@ -3801,6 +3801,12 @@ typedef enum {IfcPlateType_CURTAIN_PANEL, IfcPlateType_SHEET, IfcPlateType_USERD IFC_PARSE_API const char* ToString(IfcPlateTypeEnum v); IFC_PARSE_API IfcPlateTypeEnum FromString(const std::string& s); } +namespace IfcPreferredSurfaceCurveRepresentation { + +typedef enum {IfcPreferredSurfaceCurveRepresentation_CURVE3D, IfcPreferredSurfaceCurveRepresentation_PCURVE_S1, IfcPreferredSurfaceCurveRepresentation_PCURVE_S2} IfcPreferredSurfaceCurveRepresentation; +IFC_PARSE_API const char* ToString(IfcPreferredSurfaceCurveRepresentation v); +IFC_PARSE_API IfcPreferredSurfaceCurveRepresentation FromString(const std::string& s); +} namespace IfcProcedureTypeEnum { /// The IfcProcedureTypeEnum defines the range of different types of procedure that can be specified. /// @@ -4425,7 +4431,7 @@ namespace IfcSensorTypeEnum { /// WINDSENSOR: A device that senses or detects airflow speed and direction. /// USERDEFINED: User-defined type. /// NOTDEFINED: Undefined type. -typedef enum {IfcSensorType_CO2SENSOR, IfcSensorType_CONDUCTANCESENSOR, IfcSensorType_CONTACTSENSOR, IfcSensorType_FIRESENSOR, IfcSensorType_FLOWSENSOR, IfcSensorType_FROSTSENSOR, IfcSensorType_GASSENSOR, IfcSensorType_HEATSENSOR, IfcSensorType_HUMIDITYSENSOR, IfcSensorType_IDENTIFIERSENSOR, IfcSensorType_IONCONCENTRATIONSENSOR, IfcSensorType_LEVELSENSOR, IfcSensorType_LIGHTSENSOR, IfcSensorType_MOISTURESENSOR, IfcSensorType_MOVEMENTSENSOR, IfcSensorType_PHSENSOR, IfcSensorType_PRESSURESENSOR, IfcSensorType_RADIATIONSENSOR, IfcSensorType_RADIOACTIVITYSENSOR, IfcSensorType_SMOKESENSOR, IfcSensorType_SOUNDSENSOR, IfcSensorType_TEMPERATURESENSOR, IfcSensorType_WINDSENSOR, IfcSensorType_USERDEFINED, IfcSensorType_NOTDEFINED} IfcSensorTypeEnum; +typedef enum {IfcSensorType_COSENSOR, IfcSensorType_CO2SENSOR, IfcSensorType_CONDUCTANCESENSOR, IfcSensorType_CONTACTSENSOR, IfcSensorType_FIRESENSOR, IfcSensorType_FLOWSENSOR, IfcSensorType_FROSTSENSOR, IfcSensorType_GASSENSOR, IfcSensorType_HEATSENSOR, IfcSensorType_HUMIDITYSENSOR, IfcSensorType_IDENTIFIERSENSOR, IfcSensorType_IONCONCENTRATIONSENSOR, IfcSensorType_LEVELSENSOR, IfcSensorType_LIGHTSENSOR, IfcSensorType_MOISTURESENSOR, IfcSensorType_MOVEMENTSENSOR, IfcSensorType_PHSENSOR, IfcSensorType_PRESSURESENSOR, IfcSensorType_RADIATIONSENSOR, IfcSensorType_RADIOACTIVITYSENSOR, IfcSensorType_SMOKESENSOR, IfcSensorType_SOUNDSENSOR, IfcSensorType_TEMPERATURESENSOR, IfcSensorType_WINDSENSOR, IfcSensorType_USERDEFINED, IfcSensorType_NOTDEFINED} IfcSensorTypeEnum; IFC_PARSE_API const char* ToString(IfcSensorTypeEnum v); IFC_PARSE_API IfcSensorTypeEnum FromString(const std::string& s); } @@ -7683,18 +7689,6 @@ public: IfcSpecularRoughness (double v); operator double() const; }; - -class IFC_PARSE_API IfcStrippedOptional : public IfcUtil::IfcBaseType { -public: - virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const; - virtual Argument* getArgument(unsigned int i) const; - bool is(Type::Enum v) const; - Type::Enum type() const; - static Type::Enum Class(); - explicit IfcStrippedOptional (IfcEntityInstanceData* e); - IfcStrippedOptional (bool v); - operator bool() const; -}; /// The temperature gradient measures the difference of a temperature per lenght, as for instance used in an external wall or its layers. It is usually measured in K/m. /// /// Type: REAL @@ -22026,6 +22020,41 @@ public: IfcIShapeProfileDef (IfcProfileTypeEnum::IfcProfileTypeEnum v1_ProfileType, boost::optional< std::string > v2_ProfileName, IfcAxis2Placement2D* v3_Position, double v4_OverallWidth, double v5_OverallDepth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_FlangeEdgeRadius, boost::optional< double > v10_FlangeSlope); typedef IfcTemplatedEntityList< IfcIShapeProfileDef > list; }; + +class IFC_PARSE_API IfcIndexedPolygonalFace : public IfcTessellatedItem { +public: + std::vector< int > /*[3:?]*/ CoordIndex() const; + void setCoordIndex(std::vector< int > /*[3:?]*/ v); + virtual unsigned int getArgumentCount() const { return 1; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 0: return IfcUtil::Argument_AGGREGATE_OF_INT; } return IfcTessellatedItem::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 0: return Type::IfcPositiveInteger; } return IfcTessellatedItem::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 0: return "CoordIndex"; } return IfcTessellatedItem::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + IfcTemplatedEntityList< IfcPolygonalFaceSet >::ptr ToFaceSet() const; // INVERSE IfcPolygonalFaceSet::Faces + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcIndexedPolygonalFace (IfcEntityInstanceData* e); + IfcIndexedPolygonalFace (std::vector< int > /*[3:?]*/ v1_CoordIndex); + typedef IfcTemplatedEntityList< IfcIndexedPolygonalFace > list; +}; + +class IFC_PARSE_API IfcIndexedPolygonalFaceWithVoids : public IfcIndexedPolygonalFace { +public: + std::vector< std::vector< int > > InnerCoordIndices() const; + void setInnerCoordIndices(std::vector< std::vector< int > > v); + virtual unsigned int getArgumentCount() const { return 2; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 1: return IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_INT; } return IfcIndexedPolygonalFace::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 1: return Type::IfcPositiveInteger; } return IfcIndexedPolygonalFace::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 1: return "InnerCoordIndices"; } return IfcIndexedPolygonalFace::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcIndexedPolygonalFaceWithVoids (IfcEntityInstanceData* e); + IfcIndexedPolygonalFaceWithVoids (std::vector< int > /*[3:?]*/ v1_CoordIndex, std::vector< std::vector< int > > v2_InnerCoordIndices); + typedef IfcTemplatedEntityList< IfcIndexedPolygonalFaceWithVoids > list; +}; /// IfcLShapeProfileDef /// defines a section profile that provides the defining parameters of an /// L-shaped section (equilateral L profiles are also covered by this @@ -27238,6 +27267,23 @@ public: IfcSphere (IfcAxis2Placement3D* v1_Position, double v2_Radius); typedef IfcTemplatedEntityList< IfcSphere > list; }; + +class IFC_PARSE_API IfcSphericalSurface : public IfcElementarySurface { +public: + double Radius() const; + void setRadius(double v); + virtual unsigned int getArgumentCount() const { return 2; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 1: return IfcUtil::Argument_DOUBLE; } return IfcElementarySurface::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 1: return Type::IfcPositiveLengthMeasure; } return IfcElementarySurface::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 1: return "Radius"; } return IfcElementarySurface::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcSphericalSurface (IfcEntityInstanceData* e); + IfcSphericalSurface (IfcAxis2Placement3D* v1_Position, double v2_Radius); + typedef IfcTemplatedEntityList< IfcSphericalSurface > list; +}; /// Definition from IAI: The abstract entity IfcStructuralActivity combines the definition of actions (such as forces, displacements, etc.) and reactions (support reactions, internal forces, deflections, etc.) which are specified by using the basic load definitions from the IfcStructuralLoadResource. /// /// The differentiation between actions and reactions is realized by instantiating objects either from subclasses of IfcStructuralAction or IfcStructuralReaction respectively. They inherit commonly needed attributes from the abstract superclass IfcStructuralActivity, notably the relationship which connects actions or reactions with connections, analysis members, or elements (subtypes of IfcStructuralItem or IfcElement). @@ -27666,6 +27712,27 @@ public: IfcSubContractResourceType (std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< std::string > v7_Identification, boost::optional< std::string > v8_LongDescription, boost::optional< std::string > v9_ResourceType, boost::optional< IfcTemplatedEntityList< IfcAppliedValue >::ptr > v10_BaseCosts, IfcPhysicalQuantity* v11_BaseQuantity, IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum v12_PredefinedType); typedef IfcTemplatedEntityList< IfcSubContractResourceType > list; }; + +class IFC_PARSE_API IfcSurfaceCurve : public IfcCurve { +public: + IfcCurve* Curve3D() const; + void setCurve3D(IfcCurve* v); + IfcTemplatedEntityList< IfcPcurve >::ptr AssociatedGeometry() const; + void setAssociatedGeometry(IfcTemplatedEntityList< IfcPcurve >::ptr v); + IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation MasterRepresentation() const; + void setMasterRepresentation(IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v); + virtual unsigned int getArgumentCount() const { return 3; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 0: return IfcUtil::Argument_ENTITY_INSTANCE; case 1: return IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE; case 2: return IfcUtil::Argument_ENUMERATION; } return IfcCurve::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 0: return Type::IfcCurve; case 1: return Type::IfcPcurve; case 2: return Type::IfcPreferredSurfaceCurveRepresentation; } return IfcCurve::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 0: return "Curve3D"; case 1: return "AssociatedGeometry"; case 2: return "MasterRepresentation"; } return IfcCurve::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcSurfaceCurve (IfcEntityInstanceData* e); + IfcSurfaceCurve (IfcCurve* v1_Curve3D, IfcTemplatedEntityList< IfcPcurve >::ptr v2_AssociatedGeometry, IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v3_MasterRepresentation); + typedef IfcTemplatedEntityList< IfcSurfaceCurve > list; +}; /// The IfcSurfaceCurveSweptAreaSolid is the result of /// sweeping an area along a directrix that lies on a reference /// surface. The swept area is provided by an IfcProfileDef @@ -28253,18 +28320,10 @@ class IFC_PARSE_API IfcTessellatedFaceSet : public IfcTessellatedItem { public: IfcCartesianPointList3D* Coordinates() const; void setCoordinates(IfcCartesianPointList3D* v); - /// Whether the optional attribute Normals is defined for this IfcTessellatedFaceSet - bool hasNormals() const; - std::vector< std::vector< double > > Normals() const; - void setNormals(std::vector< std::vector< double > > v); - /// Whether the optional attribute Closed is defined for this IfcTessellatedFaceSet - bool hasClosed() const; - bool Closed() const; - void setClosed(bool v); - virtual unsigned int getArgumentCount() const { return 3; } - virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 0: return IfcUtil::Argument_ENTITY_INSTANCE; case 1: return IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_DOUBLE; case 2: return IfcUtil::Argument_BOOL; } return IfcTessellatedItem::getArgumentType(i); } - virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 0: return Type::IfcCartesianPointList3D; case 1: return Type::IfcParameterValue; case 2: return Type::IfcBoolean; } return IfcTessellatedItem::getArgumentEntity(i); } - virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 0: return "Coordinates"; case 1: return "Normals"; case 2: return "Closed"; } return IfcTessellatedItem::getArgumentName(i); } + virtual unsigned int getArgumentCount() const { return 1; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 0: return IfcUtil::Argument_ENTITY_INSTANCE; } return IfcTessellatedItem::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 0: return Type::IfcCartesianPointList3D; } return IfcTessellatedItem::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 0: return "Coordinates"; } return IfcTessellatedItem::getArgumentName(i); } virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } IfcTemplatedEntityList< IfcIndexedColourMap >::ptr HasColours() const; // INVERSE IfcIndexedColourMap::MappedTo IfcTemplatedEntityList< IfcIndexedTextureMap >::ptr HasTextures() const; // INVERSE IfcIndexedTextureMap::MappedTo @@ -28272,9 +28331,28 @@ public: Type::Enum type() const; static Type::Enum Class(); IfcTessellatedFaceSet (IfcEntityInstanceData* e); - IfcTessellatedFaceSet (IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed); + IfcTessellatedFaceSet (IfcCartesianPointList3D* v1_Coordinates); typedef IfcTemplatedEntityList< IfcTessellatedFaceSet > list; }; + +class IFC_PARSE_API IfcToroidalSurface : public IfcElementarySurface { +public: + double MajorRadius() const; + void setMajorRadius(double v); + double MinorRadius() const; + void setMinorRadius(double v); + virtual unsigned int getArgumentCount() const { return 3; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 1: return IfcUtil::Argument_DOUBLE; case 2: return IfcUtil::Argument_DOUBLE; } return IfcElementarySurface::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 1: return Type::IfcPositiveLengthMeasure; case 2: return Type::IfcPositiveLengthMeasure; } return IfcElementarySurface::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 1: return "MajorRadius"; case 2: return "MinorRadius"; } return IfcElementarySurface::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcToroidalSurface (IfcEntityInstanceData* e); + IfcToroidalSurface (IfcAxis2Placement3D* v1_Position, double v2_MajorRadius, double v3_MinorRadius); + typedef IfcTemplatedEntityList< IfcToroidalSurface > list; +}; /// Definition from IAI: The element type /// IfcTransportElementType defines commonly shared /// information for occurrences of transport elements. The set of @@ -28358,22 +28436,30 @@ public: class IFC_PARSE_API IfcTriangulatedFaceSet : public IfcTessellatedFaceSet { public: + /// Whether the optional attribute Normals is defined for this IfcTriangulatedFaceSet + bool hasNormals() const; + std::vector< std::vector< double > > Normals() const; + void setNormals(std::vector< std::vector< double > > v); + /// Whether the optional attribute Closed is defined for this IfcTriangulatedFaceSet + bool hasClosed() const; + bool Closed() const; + void setClosed(bool v); std::vector< std::vector< int > > CoordIndex() const; void setCoordIndex(std::vector< std::vector< int > > v); - /// Whether the optional attribute NormalIndex is defined for this IfcTriangulatedFaceSet - bool hasNormalIndex() const; - std::vector< std::vector< int > > NormalIndex() const; - void setNormalIndex(std::vector< std::vector< int > > v); + /// Whether the optional attribute PnIndex is defined for this IfcTriangulatedFaceSet + bool hasPnIndex() const; + std::vector< int > /*[1:?]*/ PnIndex() const; + void setPnIndex(std::vector< int > /*[1:?]*/ v); virtual unsigned int getArgumentCount() const { return 5; } - virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 3: return IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_INT; case 4: return IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_INT; } return IfcTessellatedFaceSet::getArgumentType(i); } - virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 3: return Type::IfcPositiveInteger; case 4: return Type::IfcPositiveInteger; } return IfcTessellatedFaceSet::getArgumentEntity(i); } - virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 3: return "CoordIndex"; case 4: return "NormalIndex"; } return IfcTessellatedFaceSet::getArgumentName(i); } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 1: return IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_DOUBLE; case 2: return IfcUtil::Argument_BOOL; case 3: return IfcUtil::Argument_AGGREGATE_OF_AGGREGATE_OF_INT; case 4: return IfcUtil::Argument_AGGREGATE_OF_INT; } return IfcTessellatedFaceSet::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 1: return Type::IfcParameterValue; case 2: return Type::IfcBoolean; case 3: return Type::IfcPositiveInteger; case 4: return Type::IfcPositiveInteger; } return IfcTessellatedFaceSet::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 1: return "Normals"; case 2: return "Closed"; case 3: return "CoordIndex"; case 4: return "PnIndex"; } return IfcTessellatedFaceSet::getArgumentName(i); } virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } bool is(Type::Enum v) const; Type::Enum type() const; static Type::Enum Class(); IfcTriangulatedFaceSet (IfcEntityInstanceData* e); - IfcTriangulatedFaceSet (IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< std::vector< int > > > v5_NormalIndex); + IfcTriangulatedFaceSet (IfcCartesianPointList3D* v1_Coordinates, boost::optional< std::vector< std::vector< double > > > v2_Normals, boost::optional< bool > v3_Closed, std::vector< std::vector< int > > v4_CoordIndex, boost::optional< std::vector< int > /*[1:?]*/ > v5_PnIndex); typedef IfcTemplatedEntityList< IfcTriangulatedFaceSet > list; }; /// The window lining is the outer @@ -33372,6 +33458,21 @@ public: IfcInterceptorType (std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcInterceptorTypeEnum::IfcInterceptorTypeEnum v10_PredefinedType); typedef IfcTemplatedEntityList< IfcInterceptorType > list; }; + +class IFC_PARSE_API IfcIntersectionCurve : public IfcSurfaceCurve { +public: + virtual unsigned int getArgumentCount() const { return 3; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { return IfcSurfaceCurve::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { return IfcSurfaceCurve::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { return IfcSurfaceCurve::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcIntersectionCurve (IfcEntityInstanceData* e); + IfcIntersectionCurve (IfcCurve* v1_Curve3D, IfcTemplatedEntityList< IfcPcurve >::ptr v2_AssociatedGeometry, IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v3_MasterRepresentation); + typedef IfcTemplatedEntityList< IfcIntersectionCurve > list; +}; /// An inventory is a list of items within an enterprise. /// /// Various types of inventory can be included. These are identified by the range of values within the inventory type enumeration which includes space, asset, and furniture. User defined inventories can also be defined for lists of particular types of element such as may be required in operating and maintenance instructions. Such inventories should be constrained to contain a list of elements of a restricted type.There are a number of actors that can be associated with an inventory, each actor having a role. Actors within the scope of the project are indicated using the IfcRelAssignsToActor relationship in which case roles should be defined through the IfcActorRole class; otherwise principal actors are identified as attributes of the class. In the existence of both, direct attributes take precedence.There are a number of costs that can be associated with an inventory, each cost having a role. These are specified through the CurrentValue and OriginalValue attributes.HISTORY: New entity in IFC2.0. Modified in IFC2x4 to make all attributes optional and remove Where Rule. @@ -34721,6 +34822,31 @@ public: IfcPlateType (std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcPlateTypeEnum::IfcPlateTypeEnum v10_PredefinedType); typedef IfcTemplatedEntityList< IfcPlateType > list; }; + +class IFC_PARSE_API IfcPolygonalFaceSet : public IfcTessellatedFaceSet { +public: + /// Whether the optional attribute Closed is defined for this IfcPolygonalFaceSet + bool hasClosed() const; + bool Closed() const; + void setClosed(bool v); + IfcTemplatedEntityList< IfcIndexedPolygonalFace >::ptr Faces() const; + void setFaces(IfcTemplatedEntityList< IfcIndexedPolygonalFace >::ptr v); + /// Whether the optional attribute PnIndex is defined for this IfcPolygonalFaceSet + bool hasPnIndex() const; + std::vector< int > /*[1:?]*/ PnIndex() const; + void setPnIndex(std::vector< int > /*[1:?]*/ v); + virtual unsigned int getArgumentCount() const { return 4; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 1: return IfcUtil::Argument_BOOL; case 2: return IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE; case 3: return IfcUtil::Argument_AGGREGATE_OF_INT; } return IfcTessellatedFaceSet::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 1: return Type::IfcBoolean; case 2: return Type::IfcIndexedPolygonalFace; case 3: return Type::IfcPositiveInteger; } return IfcTessellatedFaceSet::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 1: return "Closed"; case 2: return "Faces"; case 3: return "PnIndex"; } return IfcTessellatedFaceSet::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcPolygonalFaceSet (IfcEntityInstanceData* e); + IfcPolygonalFaceSet (IfcCartesianPointList3D* v1_Coordinates, boost::optional< bool > v2_Closed, IfcTemplatedEntityList< IfcIndexedPolygonalFace >::ptr v3_Faces, boost::optional< std::vector< int > /*[1:?]*/ > v4_PnIndex); + typedef IfcTemplatedEntityList< IfcPolygonalFaceSet > list; +}; /// Definition from ISO/CD 10303-42:1992: A polyline /// is a bounded curve of n - 1 linear segments, defined by a /// list of n points, P1, P2 ... Pn. @@ -35750,6 +35876,21 @@ public: IfcSanitaryTerminalType (std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum v10_PredefinedType); typedef IfcTemplatedEntityList< IfcSanitaryTerminalType > list; }; + +class IFC_PARSE_API IfcSeamCurve : public IfcSurfaceCurve { +public: + virtual unsigned int getArgumentCount() const { return 3; } + virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { return IfcSurfaceCurve::getArgumentType(i); } + virtual Type::Enum getArgumentEntity(unsigned int i) const { return IfcSurfaceCurve::getArgumentEntity(i); } + virtual const char* getArgumentName(unsigned int i) const { return IfcSurfaceCurve::getArgumentName(i); } + virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } + bool is(Type::Enum v) const; + Type::Enum type() const; + static Type::Enum Class(); + IfcSeamCurve (IfcEntityInstanceData* e); + IfcSeamCurve (IfcCurve* v1_Curve3D, IfcTemplatedEntityList< IfcPcurve >::ptr v2_AssociatedGeometry, IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation v3_MasterRepresentation); + typedef IfcTemplatedEntityList< IfcSeamCurve > list; +}; /// Definition from IAI: The IfcShadingDeviceType /// defines a list of commonly shared property set definitions of a /// shading device element and an optional set of product @@ -37787,20 +37928,20 @@ public: bool hasCrossSectionArea() const; double CrossSectionArea() const; void setCrossSectionArea(double v); - /// Whether the optional attribute SheethDiameter is defined for this IfcTendonType - bool hasSheethDiameter() const; - double SheethDiameter() const; - void setSheethDiameter(double v); + /// Whether the optional attribute SheathDiameter is defined for this IfcTendonType + bool hasSheathDiameter() const; + double SheathDiameter() const; + void setSheathDiameter(double v); virtual unsigned int getArgumentCount() const { return 13; } virtual IfcUtil::ArgumentType getArgumentType(unsigned int i) const { switch (i) {case 9: return IfcUtil::Argument_ENUMERATION; case 10: return IfcUtil::Argument_DOUBLE; case 11: return IfcUtil::Argument_DOUBLE; case 12: return IfcUtil::Argument_DOUBLE; } return IfcReinforcingElementType::getArgumentType(i); } virtual Type::Enum getArgumentEntity(unsigned int i) const { switch (i) {case 9: return Type::IfcTendonTypeEnum; case 10: return Type::IfcPositiveLengthMeasure; case 11: return Type::IfcAreaMeasure; case 12: return Type::IfcPositiveLengthMeasure; } return IfcReinforcingElementType::getArgumentEntity(i); } - virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 9: return "PredefinedType"; case 10: return "NominalDiameter"; case 11: return "CrossSectionArea"; case 12: return "SheethDiameter"; } return IfcReinforcingElementType::getArgumentName(i); } + virtual const char* getArgumentName(unsigned int i) const { switch (i) {case 9: return "PredefinedType"; case 10: return "NominalDiameter"; case 11: return "CrossSectionArea"; case 12: return "SheathDiameter"; } return IfcReinforcingElementType::getArgumentName(i); } virtual Argument* getArgument(unsigned int i) const { return entity->getArgument(i); } bool is(Type::Enum v) const; Type::Enum type() const; static Type::Enum Class(); IfcTendonType (IfcEntityInstanceData* e); - IfcTendonType (std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcTendonTypeEnum::IfcTendonTypeEnum v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheethDiameter); + IfcTendonType (std::string v1_GlobalId, IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, IfcTendonTypeEnum::IfcTendonTypeEnum v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_SheathDiameter); typedef IfcTemplatedEntityList< IfcTendonType > list; }; /// The energy conversion device type IfcTransformerType defines commonly shared information for occurrences of transformers. The set of shared information may include: diff --git a/src/ifcparse/Ifc4enum.h b/src/ifcparse/Ifc4enum.h index 7d257e26e8..ff4d66e71f 100644 --- a/src/ifcparse/Ifc4enum.h +++ b/src/ifcparse/Ifc4enum.h @@ -38,7 +38,7 @@ namespace Ifc4 { namespace Type { typedef enum { - IfcAbsorbedDoseMeasure, IfcAccelerationMeasure, IfcActionRequest, IfcActionRequestTypeEnum, IfcActionSourceTypeEnum, IfcActionTypeEnum, IfcActor, IfcActorRole, IfcActorSelect, IfcActuator, IfcActuatorType, IfcActuatorTypeEnum, IfcAddress, IfcAddressTypeEnum, IfcAdvancedBrep, IfcAdvancedBrepWithVoids, IfcAdvancedFace, IfcAirTerminal, IfcAirTerminalBox, IfcAirTerminalBoxType, IfcAirTerminalBoxTypeEnum, IfcAirTerminalType, IfcAirTerminalTypeEnum, IfcAirToAirHeatRecovery, IfcAirToAirHeatRecoveryType, IfcAirToAirHeatRecoveryTypeEnum, IfcAlarm, IfcAlarmType, IfcAlarmTypeEnum, IfcAmountOfSubstanceMeasure, IfcAnalysisModelTypeEnum, IfcAnalysisTheoryTypeEnum, IfcAngularVelocityMeasure, IfcAnnotation, IfcAnnotationFillArea, IfcApplication, IfcAppliedValue, IfcAppliedValueSelect, IfcApproval, IfcApprovalRelationship, IfcArbitraryClosedProfileDef, IfcArbitraryOpenProfileDef, IfcArbitraryProfileDefWithVoids, IfcArcIndex, IfcAreaDensityMeasure, IfcAreaMeasure, IfcArithmeticOperatorEnum, IfcAssemblyPlaceEnum, IfcAsset, IfcAsymmetricIShapeProfileDef, IfcAudioVisualAppliance, IfcAudioVisualApplianceType, IfcAudioVisualApplianceTypeEnum, IfcAxis1Placement, IfcAxis2Placement, IfcAxis2Placement2D, IfcAxis2Placement3D, IfcBSplineCurve, IfcBSplineCurveForm, IfcBSplineCurveWithKnots, IfcBSplineSurface, IfcBSplineSurfaceForm, IfcBSplineSurfaceWithKnots, IfcBeam, IfcBeamStandardCase, IfcBeamType, IfcBeamTypeEnum, IfcBenchmarkEnum, IfcBendingParameterSelect, IfcBinary, IfcBlobTexture, IfcBlock, IfcBoiler, IfcBoilerType, IfcBoilerTypeEnum, IfcBoolean, IfcBooleanClippingResult, IfcBooleanOperand, IfcBooleanOperator, IfcBooleanResult, IfcBoundaryCondition, IfcBoundaryCurve, IfcBoundaryEdgeCondition, IfcBoundaryFaceCondition, IfcBoundaryNodeCondition, IfcBoundaryNodeConditionWarping, IfcBoundedCurve, IfcBoundedSurface, IfcBoundingBox, IfcBoxAlignment, IfcBoxedHalfSpace, IfcBuilding, IfcBuildingElement, IfcBuildingElementPart, IfcBuildingElementPartType, IfcBuildingElementPartTypeEnum, IfcBuildingElementProxy, IfcBuildingElementProxyType, IfcBuildingElementProxyTypeEnum, IfcBuildingElementType, IfcBuildingStorey, IfcBuildingSystem, IfcBuildingSystemTypeEnum, IfcBurner, IfcBurnerType, IfcBurnerTypeEnum, IfcCShapeProfileDef, IfcCableCarrierFitting, IfcCableCarrierFittingType, IfcCableCarrierFittingTypeEnum, IfcCableCarrierSegment, IfcCableCarrierSegmentType, IfcCableCarrierSegmentTypeEnum, IfcCableFitting, IfcCableFittingType, IfcCableFittingTypeEnum, IfcCableSegment, IfcCableSegmentType, IfcCableSegmentTypeEnum, IfcCardinalPointReference, IfcCartesianPoint, IfcCartesianPointList, IfcCartesianPointList2D, IfcCartesianPointList3D, IfcCartesianTransformationOperator, IfcCartesianTransformationOperator2D, IfcCartesianTransformationOperator2DnonUniform, IfcCartesianTransformationOperator3D, IfcCartesianTransformationOperator3DnonUniform, IfcCenterLineProfileDef, IfcChangeActionEnum, IfcChiller, IfcChillerType, IfcChillerTypeEnum, IfcChimney, IfcChimneyType, IfcChimneyTypeEnum, IfcCircle, IfcCircleHollowProfileDef, IfcCircleProfileDef, IfcCivilElement, IfcCivilElementType, IfcClassification, IfcClassificationReference, IfcClassificationReferenceSelect, IfcClassificationSelect, IfcClosedShell, IfcCoil, IfcCoilType, IfcCoilTypeEnum, IfcColour, IfcColourOrFactor, IfcColourRgb, IfcColourRgbList, IfcColourSpecification, IfcColumn, IfcColumnStandardCase, IfcColumnType, IfcColumnTypeEnum, IfcCommunicationsAppliance, IfcCommunicationsApplianceType, IfcCommunicationsApplianceTypeEnum, IfcComplexNumber, IfcComplexProperty, IfcComplexPropertyTemplate, IfcComplexPropertyTemplateTypeEnum, IfcCompositeCurve, IfcCompositeCurveOnSurface, IfcCompositeCurveSegment, IfcCompositeProfileDef, IfcCompoundPlaneAngleMeasure, IfcCompressor, IfcCompressorType, IfcCompressorTypeEnum, IfcCondenser, IfcCondenserType, IfcCondenserTypeEnum, IfcConic, IfcConnectedFaceSet, IfcConnectionCurveGeometry, IfcConnectionGeometry, IfcConnectionPointEccentricity, IfcConnectionPointGeometry, IfcConnectionSurfaceGeometry, IfcConnectionTypeEnum, IfcConnectionVolumeGeometry, IfcConstraint, IfcConstraintEnum, IfcConstructionEquipmentResource, IfcConstructionEquipmentResourceType, IfcConstructionEquipmentResourceTypeEnum, IfcConstructionMaterialResource, IfcConstructionMaterialResourceType, IfcConstructionMaterialResourceTypeEnum, IfcConstructionProductResource, IfcConstructionProductResourceType, IfcConstructionProductResourceTypeEnum, IfcConstructionResource, IfcConstructionResourceType, IfcContext, IfcContextDependentMeasure, IfcContextDependentUnit, IfcControl, IfcController, IfcControllerType, IfcControllerTypeEnum, IfcConversionBasedUnit, IfcConversionBasedUnitWithOffset, IfcCooledBeam, IfcCooledBeamType, IfcCooledBeamTypeEnum, IfcCoolingTower, IfcCoolingTowerType, IfcCoolingTowerTypeEnum, IfcCoordinateOperation, IfcCoordinateReferenceSystem, IfcCoordinateReferenceSystemSelect, IfcCostItem, IfcCostItemTypeEnum, IfcCostSchedule, IfcCostScheduleTypeEnum, IfcCostValue, IfcCountMeasure, IfcCovering, IfcCoveringType, IfcCoveringTypeEnum, IfcCrewResource, IfcCrewResourceType, IfcCrewResourceTypeEnum, IfcCsgPrimitive3D, IfcCsgSelect, IfcCsgSolid, IfcCurrencyRelationship, IfcCurtainWall, IfcCurtainWallType, IfcCurtainWallTypeEnum, IfcCurvatureMeasure, IfcCurve, IfcCurveBoundedPlane, IfcCurveBoundedSurface, IfcCurveFontOrScaledCurveFontSelect, IfcCurveInterpolationEnum, IfcCurveOnSurface, IfcCurveOrEdgeCurve, IfcCurveStyle, IfcCurveStyleFont, IfcCurveStyleFontAndScaling, IfcCurveStyleFontPattern, IfcCurveStyleFontSelect, IfcCylindricalSurface, IfcDamper, IfcDamperType, IfcDamperTypeEnum, IfcDataOriginEnum, IfcDate, IfcDateTime, IfcDayInMonthNumber, IfcDayInWeekNumber, IfcDefinitionSelect, IfcDerivedMeasureValue, IfcDerivedProfileDef, IfcDerivedUnit, IfcDerivedUnitElement, IfcDerivedUnitEnum, IfcDescriptiveMeasure, IfcDimensionCount, IfcDimensionalExponents, IfcDirection, IfcDirectionSenseEnum, IfcDiscreteAccessory, IfcDiscreteAccessoryType, IfcDiscreteAccessoryTypeEnum, IfcDistributionChamberElement, IfcDistributionChamberElementType, IfcDistributionChamberElementTypeEnum, IfcDistributionCircuit, IfcDistributionControlElement, IfcDistributionControlElementType, IfcDistributionElement, IfcDistributionElementType, IfcDistributionFlowElement, IfcDistributionFlowElementType, IfcDistributionPort, IfcDistributionPortTypeEnum, IfcDistributionSystem, IfcDistributionSystemEnum, IfcDocumentConfidentialityEnum, IfcDocumentInformation, IfcDocumentInformationRelationship, IfcDocumentReference, IfcDocumentSelect, IfcDocumentStatusEnum, IfcDoor, IfcDoorLiningProperties, IfcDoorPanelOperationEnum, IfcDoorPanelPositionEnum, IfcDoorPanelProperties, IfcDoorStandardCase, IfcDoorStyle, IfcDoorStyleConstructionEnum, IfcDoorStyleOperationEnum, IfcDoorType, IfcDoorTypeEnum, IfcDoorTypeOperationEnum, IfcDoseEquivalentMeasure, IfcDraughtingPreDefinedColour, IfcDraughtingPreDefinedCurveFont, IfcDuctFitting, IfcDuctFittingType, IfcDuctFittingTypeEnum, IfcDuctSegment, IfcDuctSegmentType, IfcDuctSegmentTypeEnum, IfcDuctSilencer, IfcDuctSilencerType, IfcDuctSilencerTypeEnum, IfcDuration, IfcDynamicViscosityMeasure, IfcEdge, IfcEdgeCurve, IfcEdgeLoop, IfcElectricAppliance, IfcElectricApplianceType, IfcElectricApplianceTypeEnum, IfcElectricCapacitanceMeasure, IfcElectricChargeMeasure, IfcElectricConductanceMeasure, IfcElectricCurrentMeasure, IfcElectricDistributionBoard, IfcElectricDistributionBoardType, IfcElectricDistributionBoardTypeEnum, IfcElectricFlowStorageDevice, IfcElectricFlowStorageDeviceType, IfcElectricFlowStorageDeviceTypeEnum, IfcElectricGenerator, IfcElectricGeneratorType, IfcElectricGeneratorTypeEnum, IfcElectricMotor, IfcElectricMotorType, IfcElectricMotorTypeEnum, IfcElectricResistanceMeasure, IfcElectricTimeControl, IfcElectricTimeControlType, IfcElectricTimeControlTypeEnum, IfcElectricVoltageMeasure, IfcElement, IfcElementAssembly, IfcElementAssemblyType, IfcElementAssemblyTypeEnum, IfcElementComponent, IfcElementComponentType, IfcElementCompositionEnum, IfcElementQuantity, IfcElementType, IfcElementarySurface, IfcEllipse, IfcEllipseProfileDef, IfcEnergyConversionDevice, IfcEnergyConversionDeviceType, IfcEnergyMeasure, IfcEngine, IfcEngineType, IfcEngineTypeEnum, IfcEvaporativeCooler, IfcEvaporativeCoolerType, IfcEvaporativeCoolerTypeEnum, IfcEvaporator, IfcEvaporatorType, IfcEvaporatorTypeEnum, IfcEvent, IfcEventTime, IfcEventTriggerTypeEnum, IfcEventType, IfcEventTypeEnum, IfcExtendedProperties, IfcExternalInformation, IfcExternalReference, IfcExternalReferenceRelationship, IfcExternalSpatialElement, IfcExternalSpatialElementTypeEnum, IfcExternalSpatialStructureElement, IfcExternallyDefinedHatchStyle, IfcExternallyDefinedSurfaceStyle, IfcExternallyDefinedTextFont, IfcExtrudedAreaSolid, IfcExtrudedAreaSolidTapered, IfcFace, IfcFaceBasedSurfaceModel, IfcFaceBound, IfcFaceOuterBound, IfcFaceSurface, IfcFacetedBrep, IfcFacetedBrepWithVoids, IfcFailureConnectionCondition, IfcFan, IfcFanType, IfcFanTypeEnum, IfcFastener, IfcFastenerType, IfcFastenerTypeEnum, IfcFeatureElement, IfcFeatureElementAddition, IfcFeatureElementSubtraction, IfcFillAreaStyle, IfcFillAreaStyleHatching, IfcFillAreaStyleTiles, IfcFillStyleSelect, IfcFilter, IfcFilterType, IfcFilterTypeEnum, IfcFireSuppressionTerminal, IfcFireSuppressionTerminalType, IfcFireSuppressionTerminalTypeEnum, IfcFixedReferenceSweptAreaSolid, IfcFlowController, IfcFlowControllerType, IfcFlowDirectionEnum, IfcFlowFitting, IfcFlowFittingType, IfcFlowInstrument, IfcFlowInstrumentType, IfcFlowInstrumentTypeEnum, IfcFlowMeter, IfcFlowMeterType, IfcFlowMeterTypeEnum, IfcFlowMovingDevice, IfcFlowMovingDeviceType, IfcFlowSegment, IfcFlowSegmentType, IfcFlowStorageDevice, IfcFlowStorageDeviceType, IfcFlowTerminal, IfcFlowTerminalType, IfcFlowTreatmentDevice, IfcFlowTreatmentDeviceType, IfcFontStyle, IfcFontVariant, IfcFontWeight, IfcFooting, IfcFootingType, IfcFootingTypeEnum, IfcForceMeasure, IfcFrequencyMeasure, IfcFurnishingElement, IfcFurnishingElementType, IfcFurniture, IfcFurnitureType, IfcFurnitureTypeEnum, IfcGeographicElement, IfcGeographicElementType, IfcGeographicElementTypeEnum, IfcGeometricCurveSet, IfcGeometricProjectionEnum, IfcGeometricRepresentationContext, IfcGeometricRepresentationItem, IfcGeometricRepresentationSubContext, IfcGeometricSet, IfcGeometricSetSelect, IfcGlobalOrLocalEnum, IfcGloballyUniqueId, IfcGrid, IfcGridAxis, IfcGridPlacement, IfcGridPlacementDirectionSelect, IfcGridTypeEnum, IfcGroup, IfcHalfSpaceSolid, IfcHatchLineDistanceSelect, IfcHeatExchanger, IfcHeatExchangerType, IfcHeatExchangerTypeEnum, IfcHeatFluxDensityMeasure, IfcHeatingValueMeasure, IfcHumidifier, IfcHumidifierType, IfcHumidifierTypeEnum, IfcIShapeProfileDef, IfcIdentifier, IfcIlluminanceMeasure, IfcImageTexture, IfcIndexedColourMap, IfcIndexedPolyCurve, IfcIndexedTextureMap, IfcIndexedTriangleTextureMap, IfcInductanceMeasure, IfcInteger, IfcIntegerCountRateMeasure, IfcInterceptor, IfcInterceptorType, IfcInterceptorTypeEnum, IfcInternalOrExternalEnum, IfcInventory, IfcInventoryTypeEnum, IfcIonConcentrationMeasure, IfcIrregularTimeSeries, IfcIrregularTimeSeriesValue, IfcIsothermalMoistureCapacityMeasure, IfcJunctionBox, IfcJunctionBoxType, IfcJunctionBoxTypeEnum, IfcKinematicViscosityMeasure, IfcKnotType, IfcLShapeProfileDef, IfcLabel, IfcLaborResource, IfcLaborResourceType, IfcLaborResourceTypeEnum, IfcLagTime, IfcLamp, IfcLampType, IfcLampTypeEnum, IfcLanguageId, IfcLayerSetDirectionEnum, IfcLayeredItem, IfcLengthMeasure, IfcLibraryInformation, IfcLibraryReference, IfcLibrarySelect, IfcLightDistributionCurveEnum, IfcLightDistributionData, IfcLightDistributionDataSourceSelect, IfcLightEmissionSourceEnum, IfcLightFixture, IfcLightFixtureType, IfcLightFixtureTypeEnum, IfcLightIntensityDistribution, IfcLightSource, IfcLightSourceAmbient, IfcLightSourceDirectional, IfcLightSourceGoniometric, IfcLightSourcePositional, IfcLightSourceSpot, IfcLine, IfcLineIndex, IfcLinearForceMeasure, IfcLinearMomentMeasure, IfcLinearStiffnessMeasure, IfcLinearVelocityMeasure, IfcLoadGroupTypeEnum, IfcLocalPlacement, IfcLogical, IfcLogicalOperatorEnum, IfcLoop, IfcLuminousFluxMeasure, IfcLuminousIntensityDistributionMeasure, IfcLuminousIntensityMeasure, IfcMagneticFluxDensityMeasure, IfcMagneticFluxMeasure, IfcManifoldSolidBrep, IfcMapConversion, IfcMappedItem, IfcMassDensityMeasure, IfcMassFlowRateMeasure, IfcMassMeasure, IfcMassPerLengthMeasure, IfcMaterial, IfcMaterialClassificationRelationship, IfcMaterialConstituent, IfcMaterialConstituentSet, IfcMaterialDefinition, IfcMaterialDefinitionRepresentation, IfcMaterialLayer, IfcMaterialLayerSet, IfcMaterialLayerSetUsage, IfcMaterialLayerWithOffsets, IfcMaterialList, IfcMaterialProfile, IfcMaterialProfileSet, IfcMaterialProfileSetUsage, IfcMaterialProfileSetUsageTapering, IfcMaterialProfileWithOffsets, IfcMaterialProperties, IfcMaterialRelationship, IfcMaterialSelect, IfcMaterialUsageDefinition, IfcMeasureValue, IfcMeasureWithUnit, IfcMechanicalFastener, IfcMechanicalFastenerType, IfcMechanicalFastenerTypeEnum, IfcMedicalDevice, IfcMedicalDeviceType, IfcMedicalDeviceTypeEnum, IfcMember, IfcMemberStandardCase, IfcMemberType, IfcMemberTypeEnum, IfcMetric, IfcMetricValueSelect, IfcMirroredProfileDef, IfcModulusOfElasticityMeasure, IfcModulusOfLinearSubgradeReactionMeasure, IfcModulusOfRotationalSubgradeReactionMeasure, IfcModulusOfRotationalSubgradeReactionSelect, IfcModulusOfSubgradeReactionMeasure, IfcModulusOfSubgradeReactionSelect, IfcModulusOfTranslationalSubgradeReactionSelect, IfcMoistureDiffusivityMeasure, IfcMolecularWeightMeasure, IfcMomentOfInertiaMeasure, IfcMonetaryMeasure, IfcMonetaryUnit, IfcMonthInYearNumber, IfcMotorConnection, IfcMotorConnectionType, IfcMotorConnectionTypeEnum, IfcNamedUnit, IfcNonNegativeLengthMeasure, IfcNormalisedRatioMeasure, IfcNullStyle, IfcNumericMeasure, IfcObject, IfcObjectDefinition, IfcObjectPlacement, IfcObjectReferenceSelect, IfcObjectTypeEnum, IfcObjective, IfcObjectiveEnum, IfcOccupant, IfcOccupantTypeEnum, IfcOffsetCurve2D, IfcOffsetCurve3D, IfcOpenShell, IfcOpeningElement, IfcOpeningElementTypeEnum, IfcOpeningStandardCase, IfcOrganization, IfcOrganizationRelationship, IfcOrientedEdge, IfcOuterBoundaryCurve, IfcOutlet, IfcOutletType, IfcOutletTypeEnum, IfcOwnerHistory, IfcPHMeasure, IfcParameterValue, IfcParameterizedProfileDef, IfcPath, IfcPcurve, IfcPerformanceHistory, IfcPerformanceHistoryTypeEnum, IfcPermeableCoveringOperationEnum, IfcPermeableCoveringProperties, IfcPermit, IfcPermitTypeEnum, IfcPerson, IfcPersonAndOrganization, IfcPhysicalComplexQuantity, IfcPhysicalOrVirtualEnum, IfcPhysicalQuantity, IfcPhysicalSimpleQuantity, IfcPile, IfcPileConstructionEnum, IfcPileType, IfcPileTypeEnum, IfcPipeFitting, IfcPipeFittingType, IfcPipeFittingTypeEnum, IfcPipeSegment, IfcPipeSegmentType, IfcPipeSegmentTypeEnum, IfcPixelTexture, IfcPlacement, IfcPlanarBox, IfcPlanarExtent, IfcPlanarForceMeasure, IfcPlane, IfcPlaneAngleMeasure, IfcPlate, IfcPlateStandardCase, IfcPlateType, IfcPlateTypeEnum, IfcPoint, IfcPointOnCurve, IfcPointOnSurface, IfcPointOrVertexPoint, IfcPolyLoop, IfcPolygonalBoundedHalfSpace, IfcPolyline, IfcPort, IfcPositiveInteger, IfcPositiveLengthMeasure, IfcPositivePlaneAngleMeasure, IfcPositiveRatioMeasure, IfcPostalAddress, IfcPowerMeasure, IfcPreDefinedColour, IfcPreDefinedCurveFont, IfcPreDefinedItem, IfcPreDefinedProperties, IfcPreDefinedPropertySet, IfcPreDefinedTextFont, IfcPresentableText, IfcPresentationItem, IfcPresentationLayerAssignment, IfcPresentationLayerWithStyle, IfcPresentationStyle, IfcPresentationStyleAssignment, IfcPresentationStyleSelect, IfcPressureMeasure, IfcProcedure, IfcProcedureType, IfcProcedureTypeEnum, IfcProcess, IfcProcessSelect, IfcProduct, IfcProductDefinitionShape, IfcProductRepresentation, IfcProductRepresentationSelect, IfcProductSelect, IfcProfileDef, IfcProfileProperties, IfcProfileTypeEnum, IfcProject, IfcProjectLibrary, IfcProjectOrder, IfcProjectOrderTypeEnum, IfcProjectedCRS, IfcProjectedOrTrueLengthEnum, IfcProjectionElement, IfcProjectionElementTypeEnum, IfcProperty, IfcPropertyAbstraction, IfcPropertyBoundedValue, IfcPropertyDefinition, IfcPropertyDependencyRelationship, IfcPropertyEnumeratedValue, IfcPropertyEnumeration, IfcPropertyListValue, IfcPropertyReferenceValue, IfcPropertySet, IfcPropertySetDefinition, IfcPropertySetDefinitionSelect, IfcPropertySetDefinitionSet, IfcPropertySetTemplate, IfcPropertySetTemplateTypeEnum, IfcPropertySingleValue, IfcPropertyTableValue, IfcPropertyTemplate, IfcPropertyTemplateDefinition, IfcProtectiveDevice, IfcProtectiveDeviceTrippingUnit, IfcProtectiveDeviceTrippingUnitType, IfcProtectiveDeviceTrippingUnitTypeEnum, IfcProtectiveDeviceType, IfcProtectiveDeviceTypeEnum, IfcProxy, IfcPump, IfcPumpType, IfcPumpTypeEnum, IfcQuantityArea, IfcQuantityCount, IfcQuantityLength, IfcQuantitySet, IfcQuantityTime, IfcQuantityVolume, IfcQuantityWeight, IfcRadioActivityMeasure, IfcRailing, IfcRailingType, IfcRailingTypeEnum, IfcRamp, IfcRampFlight, IfcRampFlightType, IfcRampFlightTypeEnum, IfcRampType, IfcRampTypeEnum, IfcRatioMeasure, IfcRationalBSplineCurveWithKnots, IfcRationalBSplineSurfaceWithKnots, IfcReal, IfcRectangleHollowProfileDef, IfcRectangleProfileDef, IfcRectangularPyramid, IfcRectangularTrimmedSurface, IfcRecurrencePattern, IfcRecurrenceTypeEnum, IfcReference, IfcReflectanceMethodEnum, IfcRegularTimeSeries, IfcReinforcementBarProperties, IfcReinforcementDefinitionProperties, IfcReinforcingBar, IfcReinforcingBarRoleEnum, IfcReinforcingBarSurfaceEnum, IfcReinforcingBarType, IfcReinforcingBarTypeEnum, IfcReinforcingElement, IfcReinforcingElementType, IfcReinforcingMesh, IfcReinforcingMeshType, IfcReinforcingMeshTypeEnum, IfcRelAggregates, IfcRelAssigns, IfcRelAssignsToActor, IfcRelAssignsToControl, IfcRelAssignsToGroup, IfcRelAssignsToGroupByFactor, IfcRelAssignsToProcess, IfcRelAssignsToProduct, IfcRelAssignsToResource, IfcRelAssociates, IfcRelAssociatesApproval, IfcRelAssociatesClassification, IfcRelAssociatesConstraint, IfcRelAssociatesDocument, IfcRelAssociatesLibrary, IfcRelAssociatesMaterial, IfcRelConnects, IfcRelConnectsElements, IfcRelConnectsPathElements, IfcRelConnectsPortToElement, IfcRelConnectsPorts, IfcRelConnectsStructuralActivity, IfcRelConnectsStructuralMember, IfcRelConnectsWithEccentricity, IfcRelConnectsWithRealizingElements, IfcRelContainedInSpatialStructure, IfcRelCoversBldgElements, IfcRelCoversSpaces, IfcRelDeclares, IfcRelDecomposes, IfcRelDefines, IfcRelDefinesByObject, IfcRelDefinesByProperties, IfcRelDefinesByTemplate, IfcRelDefinesByType, IfcRelFillsElement, IfcRelFlowControlElements, IfcRelInterferesElements, IfcRelNests, IfcRelProjectsElement, IfcRelReferencedInSpatialStructure, IfcRelSequence, IfcRelServicesBuildings, IfcRelSpaceBoundary, IfcRelSpaceBoundary1stLevel, IfcRelSpaceBoundary2ndLevel, IfcRelVoidsElement, IfcRelationship, IfcReparametrisedCompositeCurveSegment, IfcRepresentation, IfcRepresentationContext, IfcRepresentationItem, IfcRepresentationMap, IfcResource, IfcResourceApprovalRelationship, IfcResourceConstraintRelationship, IfcResourceLevelRelationship, IfcResourceObjectSelect, IfcResourceSelect, IfcResourceTime, IfcRevolvedAreaSolid, IfcRevolvedAreaSolidTapered, IfcRightCircularCone, IfcRightCircularCylinder, IfcRoleEnum, IfcRoof, IfcRoofType, IfcRoofTypeEnum, IfcRoot, IfcRotationalFrequencyMeasure, IfcRotationalMassMeasure, IfcRotationalStiffnessMeasure, IfcRotationalStiffnessSelect, IfcRoundedRectangleProfileDef, IfcSIPrefix, IfcSIUnit, IfcSIUnitName, IfcSanitaryTerminal, IfcSanitaryTerminalType, IfcSanitaryTerminalTypeEnum, IfcSchedulingTime, IfcSectionModulusMeasure, IfcSectionProperties, IfcSectionReinforcementProperties, IfcSectionTypeEnum, IfcSectionalAreaIntegralMeasure, IfcSectionedSpine, IfcSegmentIndexSelect, IfcSensor, IfcSensorType, IfcSensorTypeEnum, IfcSequenceEnum, IfcShadingDevice, IfcShadingDeviceType, IfcShadingDeviceTypeEnum, IfcShapeAspect, IfcShapeModel, IfcShapeRepresentation, IfcShearModulusMeasure, IfcShell, IfcShellBasedSurfaceModel, IfcSimpleProperty, IfcSimplePropertyTemplate, IfcSimplePropertyTemplateTypeEnum, IfcSimpleValue, IfcSite, IfcSizeSelect, IfcSlab, IfcSlabElementedCase, IfcSlabStandardCase, IfcSlabType, IfcSlabTypeEnum, IfcSlippageConnectionCondition, IfcSolarDevice, IfcSolarDeviceType, IfcSolarDeviceTypeEnum, IfcSolidAngleMeasure, IfcSolidModel, IfcSolidOrShell, IfcSoundPowerLevelMeasure, IfcSoundPowerMeasure, IfcSoundPressureLevelMeasure, IfcSoundPressureMeasure, IfcSpace, IfcSpaceBoundarySelect, IfcSpaceHeater, IfcSpaceHeaterType, IfcSpaceHeaterTypeEnum, IfcSpaceType, IfcSpaceTypeEnum, IfcSpatialElement, IfcSpatialElementType, IfcSpatialStructureElement, IfcSpatialStructureElementType, IfcSpatialZone, IfcSpatialZoneType, IfcSpatialZoneTypeEnum, IfcSpecificHeatCapacityMeasure, IfcSpecularExponent, IfcSpecularHighlightSelect, IfcSpecularRoughness, IfcSphere, IfcStackTerminal, IfcStackTerminalType, IfcStackTerminalTypeEnum, IfcStair, IfcStairFlight, IfcStairFlightType, IfcStairFlightTypeEnum, IfcStairType, IfcStairTypeEnum, IfcStateEnum, IfcStrippedOptional, IfcStructuralAction, IfcStructuralActivity, IfcStructuralActivityAssignmentSelect, IfcStructuralAnalysisModel, IfcStructuralConnection, IfcStructuralConnectionCondition, IfcStructuralCurveAction, IfcStructuralCurveActivityTypeEnum, IfcStructuralCurveConnection, IfcStructuralCurveMember, IfcStructuralCurveMemberTypeEnum, IfcStructuralCurveMemberVarying, IfcStructuralCurveReaction, IfcStructuralItem, IfcStructuralLinearAction, IfcStructuralLoad, IfcStructuralLoadCase, IfcStructuralLoadConfiguration, IfcStructuralLoadGroup, IfcStructuralLoadLinearForce, IfcStructuralLoadOrResult, IfcStructuralLoadPlanarForce, IfcStructuralLoadSingleDisplacement, IfcStructuralLoadSingleDisplacementDistortion, IfcStructuralLoadSingleForce, IfcStructuralLoadSingleForceWarping, IfcStructuralLoadStatic, IfcStructuralLoadTemperature, IfcStructuralMember, IfcStructuralPlanarAction, IfcStructuralPointAction, IfcStructuralPointConnection, IfcStructuralPointReaction, IfcStructuralReaction, IfcStructuralResultGroup, IfcStructuralSurfaceAction, IfcStructuralSurfaceActivityTypeEnum, IfcStructuralSurfaceConnection, IfcStructuralSurfaceMember, IfcStructuralSurfaceMemberTypeEnum, IfcStructuralSurfaceMemberVarying, IfcStructuralSurfaceReaction, IfcStyleAssignmentSelect, IfcStyleModel, IfcStyledItem, IfcStyledRepresentation, IfcSubContractResource, IfcSubContractResourceType, IfcSubContractResourceTypeEnum, IfcSubedge, IfcSurface, IfcSurfaceCurveSweptAreaSolid, IfcSurfaceFeature, IfcSurfaceFeatureTypeEnum, IfcSurfaceOfLinearExtrusion, IfcSurfaceOfRevolution, IfcSurfaceOrFaceSurface, IfcSurfaceReinforcementArea, IfcSurfaceSide, IfcSurfaceStyle, IfcSurfaceStyleElementSelect, IfcSurfaceStyleLighting, IfcSurfaceStyleRefraction, IfcSurfaceStyleRendering, IfcSurfaceStyleShading, IfcSurfaceStyleWithTextures, IfcSurfaceTexture, IfcSweptAreaSolid, IfcSweptDiskSolid, IfcSweptDiskSolidPolygonal, IfcSweptSurface, IfcSwitchingDevice, IfcSwitchingDeviceType, IfcSwitchingDeviceTypeEnum, IfcSystem, IfcSystemFurnitureElement, IfcSystemFurnitureElementType, IfcSystemFurnitureElementTypeEnum, IfcTShapeProfileDef, IfcTable, IfcTableColumn, IfcTableRow, IfcTank, IfcTankType, IfcTankTypeEnum, IfcTask, IfcTaskDurationEnum, IfcTaskTime, IfcTaskTimeRecurring, IfcTaskType, IfcTaskTypeEnum, IfcTelecomAddress, IfcTemperatureGradientMeasure, IfcTemperatureRateOfChangeMeasure, IfcTendon, IfcTendonAnchor, IfcTendonAnchorType, IfcTendonAnchorTypeEnum, IfcTendonType, IfcTendonTypeEnum, IfcTessellatedFaceSet, IfcTessellatedItem, IfcText, IfcTextAlignment, IfcTextDecoration, IfcTextFontName, IfcTextFontSelect, IfcTextLiteral, IfcTextLiteralWithExtent, IfcTextPath, IfcTextStyle, IfcTextStyleFontModel, IfcTextStyleForDefinedFont, IfcTextStyleTextModel, IfcTextTransformation, IfcTextureCoordinate, IfcTextureCoordinateGenerator, IfcTextureMap, IfcTextureVertex, IfcTextureVertexList, IfcThermalAdmittanceMeasure, IfcThermalConductivityMeasure, IfcThermalExpansionCoefficientMeasure, IfcThermalResistanceMeasure, IfcThermalTransmittanceMeasure, IfcThermodynamicTemperatureMeasure, IfcTime, IfcTimeMeasure, IfcTimeOrRatioSelect, IfcTimePeriod, IfcTimeSeries, IfcTimeSeriesDataTypeEnum, IfcTimeSeriesValue, IfcTimeStamp, IfcTopologicalRepresentationItem, IfcTopologyRepresentation, IfcTorqueMeasure, IfcTransformer, IfcTransformerType, IfcTransformerTypeEnum, IfcTransitionCode, IfcTranslationalStiffnessSelect, IfcTransportElement, IfcTransportElementType, IfcTransportElementTypeEnum, IfcTrapeziumProfileDef, IfcTriangulatedFaceSet, IfcTrimmedCurve, IfcTrimmingPreference, IfcTrimmingSelect, IfcTubeBundle, IfcTubeBundleType, IfcTubeBundleTypeEnum, IfcTypeObject, IfcTypeProcess, IfcTypeProduct, IfcTypeResource, IfcURIReference, IfcUShapeProfileDef, IfcUnit, IfcUnitAssignment, IfcUnitEnum, IfcUnitaryControlElement, IfcUnitaryControlElementType, IfcUnitaryControlElementTypeEnum, IfcUnitaryEquipment, IfcUnitaryEquipmentType, IfcUnitaryEquipmentTypeEnum, IfcValue, IfcValve, IfcValveType, IfcValveTypeEnum, IfcVaporPermeabilityMeasure, IfcVector, IfcVectorOrDirection, IfcVertex, IfcVertexLoop, IfcVertexPoint, IfcVibrationIsolator, IfcVibrationIsolatorType, IfcVibrationIsolatorTypeEnum, IfcVirtualElement, IfcVirtualGridIntersection, IfcVoidingFeature, IfcVoidingFeatureTypeEnum, IfcVolumeMeasure, IfcVolumetricFlowRateMeasure, IfcWall, IfcWallElementedCase, IfcWallStandardCase, IfcWallType, IfcWallTypeEnum, IfcWarpingConstantMeasure, IfcWarpingMomentMeasure, IfcWarpingStiffnessSelect, IfcWasteTerminal, IfcWasteTerminalType, IfcWasteTerminalTypeEnum, IfcWindow, IfcWindowLiningProperties, IfcWindowPanelOperationEnum, IfcWindowPanelPositionEnum, IfcWindowPanelProperties, IfcWindowStandardCase, IfcWindowStyle, IfcWindowStyleConstructionEnum, IfcWindowStyleOperationEnum, IfcWindowType, IfcWindowTypeEnum, IfcWindowTypePartitioningEnum, IfcWorkCalendar, IfcWorkCalendarTypeEnum, IfcWorkControl, IfcWorkPlan, IfcWorkPlanTypeEnum, IfcWorkSchedule, IfcWorkScheduleTypeEnum, IfcWorkTime, IfcZShapeProfileDef, IfcZone, UNDEFINED + IfcAbsorbedDoseMeasure, IfcAccelerationMeasure, IfcActionRequest, IfcActionRequestTypeEnum, IfcActionSourceTypeEnum, IfcActionTypeEnum, IfcActor, IfcActorRole, IfcActorSelect, IfcActuator, IfcActuatorType, IfcActuatorTypeEnum, IfcAddress, IfcAddressTypeEnum, IfcAdvancedBrep, IfcAdvancedBrepWithVoids, IfcAdvancedFace, IfcAirTerminal, IfcAirTerminalBox, IfcAirTerminalBoxType, IfcAirTerminalBoxTypeEnum, IfcAirTerminalType, IfcAirTerminalTypeEnum, IfcAirToAirHeatRecovery, IfcAirToAirHeatRecoveryType, IfcAirToAirHeatRecoveryTypeEnum, IfcAlarm, IfcAlarmType, IfcAlarmTypeEnum, IfcAmountOfSubstanceMeasure, IfcAnalysisModelTypeEnum, IfcAnalysisTheoryTypeEnum, IfcAngularVelocityMeasure, IfcAnnotation, IfcAnnotationFillArea, IfcApplication, IfcAppliedValue, IfcAppliedValueSelect, IfcApproval, IfcApprovalRelationship, IfcArbitraryClosedProfileDef, IfcArbitraryOpenProfileDef, IfcArbitraryProfileDefWithVoids, IfcArcIndex, IfcAreaDensityMeasure, IfcAreaMeasure, IfcArithmeticOperatorEnum, IfcAssemblyPlaceEnum, IfcAsset, IfcAsymmetricIShapeProfileDef, IfcAudioVisualAppliance, IfcAudioVisualApplianceType, IfcAudioVisualApplianceTypeEnum, IfcAxis1Placement, IfcAxis2Placement, IfcAxis2Placement2D, IfcAxis2Placement3D, IfcBSplineCurve, IfcBSplineCurveForm, IfcBSplineCurveWithKnots, IfcBSplineSurface, IfcBSplineSurfaceForm, IfcBSplineSurfaceWithKnots, IfcBeam, IfcBeamStandardCase, IfcBeamType, IfcBeamTypeEnum, IfcBenchmarkEnum, IfcBendingParameterSelect, IfcBinary, IfcBlobTexture, IfcBlock, IfcBoiler, IfcBoilerType, IfcBoilerTypeEnum, IfcBoolean, IfcBooleanClippingResult, IfcBooleanOperand, IfcBooleanOperator, IfcBooleanResult, IfcBoundaryCondition, IfcBoundaryCurve, IfcBoundaryEdgeCondition, IfcBoundaryFaceCondition, IfcBoundaryNodeCondition, IfcBoundaryNodeConditionWarping, IfcBoundedCurve, IfcBoundedSurface, IfcBoundingBox, IfcBoxAlignment, IfcBoxedHalfSpace, IfcBuilding, IfcBuildingElement, IfcBuildingElementPart, IfcBuildingElementPartType, IfcBuildingElementPartTypeEnum, IfcBuildingElementProxy, IfcBuildingElementProxyType, IfcBuildingElementProxyTypeEnum, IfcBuildingElementType, IfcBuildingStorey, IfcBuildingSystem, IfcBuildingSystemTypeEnum, IfcBurner, IfcBurnerType, IfcBurnerTypeEnum, IfcCShapeProfileDef, IfcCableCarrierFitting, IfcCableCarrierFittingType, IfcCableCarrierFittingTypeEnum, IfcCableCarrierSegment, IfcCableCarrierSegmentType, IfcCableCarrierSegmentTypeEnum, IfcCableFitting, IfcCableFittingType, IfcCableFittingTypeEnum, IfcCableSegment, IfcCableSegmentType, IfcCableSegmentTypeEnum, IfcCardinalPointReference, IfcCartesianPoint, IfcCartesianPointList, IfcCartesianPointList2D, IfcCartesianPointList3D, IfcCartesianTransformationOperator, IfcCartesianTransformationOperator2D, IfcCartesianTransformationOperator2DnonUniform, IfcCartesianTransformationOperator3D, IfcCartesianTransformationOperator3DnonUniform, IfcCenterLineProfileDef, IfcChangeActionEnum, IfcChiller, IfcChillerType, IfcChillerTypeEnum, IfcChimney, IfcChimneyType, IfcChimneyTypeEnum, IfcCircle, IfcCircleHollowProfileDef, IfcCircleProfileDef, IfcCivilElement, IfcCivilElementType, IfcClassification, IfcClassificationReference, IfcClassificationReferenceSelect, IfcClassificationSelect, IfcClosedShell, IfcCoil, IfcCoilType, IfcCoilTypeEnum, IfcColour, IfcColourOrFactor, IfcColourRgb, IfcColourRgbList, IfcColourSpecification, IfcColumn, IfcColumnStandardCase, IfcColumnType, IfcColumnTypeEnum, IfcCommunicationsAppliance, IfcCommunicationsApplianceType, IfcCommunicationsApplianceTypeEnum, IfcComplexNumber, IfcComplexProperty, IfcComplexPropertyTemplate, IfcComplexPropertyTemplateTypeEnum, IfcCompositeCurve, IfcCompositeCurveOnSurface, IfcCompositeCurveSegment, IfcCompositeProfileDef, IfcCompoundPlaneAngleMeasure, IfcCompressor, IfcCompressorType, IfcCompressorTypeEnum, IfcCondenser, IfcCondenserType, IfcCondenserTypeEnum, IfcConic, IfcConnectedFaceSet, IfcConnectionCurveGeometry, IfcConnectionGeometry, IfcConnectionPointEccentricity, IfcConnectionPointGeometry, IfcConnectionSurfaceGeometry, IfcConnectionTypeEnum, IfcConnectionVolumeGeometry, IfcConstraint, IfcConstraintEnum, IfcConstructionEquipmentResource, IfcConstructionEquipmentResourceType, IfcConstructionEquipmentResourceTypeEnum, IfcConstructionMaterialResource, IfcConstructionMaterialResourceType, IfcConstructionMaterialResourceTypeEnum, IfcConstructionProductResource, IfcConstructionProductResourceType, IfcConstructionProductResourceTypeEnum, IfcConstructionResource, IfcConstructionResourceType, IfcContext, IfcContextDependentMeasure, IfcContextDependentUnit, IfcControl, IfcController, IfcControllerType, IfcControllerTypeEnum, IfcConversionBasedUnit, IfcConversionBasedUnitWithOffset, IfcCooledBeam, IfcCooledBeamType, IfcCooledBeamTypeEnum, IfcCoolingTower, IfcCoolingTowerType, IfcCoolingTowerTypeEnum, IfcCoordinateOperation, IfcCoordinateReferenceSystem, IfcCoordinateReferenceSystemSelect, IfcCostItem, IfcCostItemTypeEnum, IfcCostSchedule, IfcCostScheduleTypeEnum, IfcCostValue, IfcCountMeasure, IfcCovering, IfcCoveringType, IfcCoveringTypeEnum, IfcCrewResource, IfcCrewResourceType, IfcCrewResourceTypeEnum, IfcCsgPrimitive3D, IfcCsgSelect, IfcCsgSolid, IfcCurrencyRelationship, IfcCurtainWall, IfcCurtainWallType, IfcCurtainWallTypeEnum, IfcCurvatureMeasure, IfcCurve, IfcCurveBoundedPlane, IfcCurveBoundedSurface, IfcCurveFontOrScaledCurveFontSelect, IfcCurveInterpolationEnum, IfcCurveOnSurface, IfcCurveOrEdgeCurve, IfcCurveStyle, IfcCurveStyleFont, IfcCurveStyleFontAndScaling, IfcCurveStyleFontPattern, IfcCurveStyleFontSelect, IfcCylindricalSurface, IfcDamper, IfcDamperType, IfcDamperTypeEnum, IfcDataOriginEnum, IfcDate, IfcDateTime, IfcDayInMonthNumber, IfcDayInWeekNumber, IfcDefinitionSelect, IfcDerivedMeasureValue, IfcDerivedProfileDef, IfcDerivedUnit, IfcDerivedUnitElement, IfcDerivedUnitEnum, IfcDescriptiveMeasure, IfcDimensionCount, IfcDimensionalExponents, IfcDirection, IfcDirectionSenseEnum, IfcDiscreteAccessory, IfcDiscreteAccessoryType, IfcDiscreteAccessoryTypeEnum, IfcDistributionChamberElement, IfcDistributionChamberElementType, IfcDistributionChamberElementTypeEnum, IfcDistributionCircuit, IfcDistributionControlElement, IfcDistributionControlElementType, IfcDistributionElement, IfcDistributionElementType, IfcDistributionFlowElement, IfcDistributionFlowElementType, IfcDistributionPort, IfcDistributionPortTypeEnum, IfcDistributionSystem, IfcDistributionSystemEnum, IfcDocumentConfidentialityEnum, IfcDocumentInformation, IfcDocumentInformationRelationship, IfcDocumentReference, IfcDocumentSelect, IfcDocumentStatusEnum, IfcDoor, IfcDoorLiningProperties, IfcDoorPanelOperationEnum, IfcDoorPanelPositionEnum, IfcDoorPanelProperties, IfcDoorStandardCase, IfcDoorStyle, IfcDoorStyleConstructionEnum, IfcDoorStyleOperationEnum, IfcDoorType, IfcDoorTypeEnum, IfcDoorTypeOperationEnum, IfcDoseEquivalentMeasure, IfcDraughtingPreDefinedColour, IfcDraughtingPreDefinedCurveFont, IfcDuctFitting, IfcDuctFittingType, IfcDuctFittingTypeEnum, IfcDuctSegment, IfcDuctSegmentType, IfcDuctSegmentTypeEnum, IfcDuctSilencer, IfcDuctSilencerType, IfcDuctSilencerTypeEnum, IfcDuration, IfcDynamicViscosityMeasure, IfcEdge, IfcEdgeCurve, IfcEdgeLoop, IfcElectricAppliance, IfcElectricApplianceType, IfcElectricApplianceTypeEnum, IfcElectricCapacitanceMeasure, IfcElectricChargeMeasure, IfcElectricConductanceMeasure, IfcElectricCurrentMeasure, IfcElectricDistributionBoard, IfcElectricDistributionBoardType, IfcElectricDistributionBoardTypeEnum, IfcElectricFlowStorageDevice, IfcElectricFlowStorageDeviceType, IfcElectricFlowStorageDeviceTypeEnum, IfcElectricGenerator, IfcElectricGeneratorType, IfcElectricGeneratorTypeEnum, IfcElectricMotor, IfcElectricMotorType, IfcElectricMotorTypeEnum, IfcElectricResistanceMeasure, IfcElectricTimeControl, IfcElectricTimeControlType, IfcElectricTimeControlTypeEnum, IfcElectricVoltageMeasure, IfcElement, IfcElementAssembly, IfcElementAssemblyType, IfcElementAssemblyTypeEnum, IfcElementComponent, IfcElementComponentType, IfcElementCompositionEnum, IfcElementQuantity, IfcElementType, IfcElementarySurface, IfcEllipse, IfcEllipseProfileDef, IfcEnergyConversionDevice, IfcEnergyConversionDeviceType, IfcEnergyMeasure, IfcEngine, IfcEngineType, IfcEngineTypeEnum, IfcEvaporativeCooler, IfcEvaporativeCoolerType, IfcEvaporativeCoolerTypeEnum, IfcEvaporator, IfcEvaporatorType, IfcEvaporatorTypeEnum, IfcEvent, IfcEventTime, IfcEventTriggerTypeEnum, IfcEventType, IfcEventTypeEnum, IfcExtendedProperties, IfcExternalInformation, IfcExternalReference, IfcExternalReferenceRelationship, IfcExternalSpatialElement, IfcExternalSpatialElementTypeEnum, IfcExternalSpatialStructureElement, IfcExternallyDefinedHatchStyle, IfcExternallyDefinedSurfaceStyle, IfcExternallyDefinedTextFont, IfcExtrudedAreaSolid, IfcExtrudedAreaSolidTapered, IfcFace, IfcFaceBasedSurfaceModel, IfcFaceBound, IfcFaceOuterBound, IfcFaceSurface, IfcFacetedBrep, IfcFacetedBrepWithVoids, IfcFailureConnectionCondition, IfcFan, IfcFanType, IfcFanTypeEnum, IfcFastener, IfcFastenerType, IfcFastenerTypeEnum, IfcFeatureElement, IfcFeatureElementAddition, IfcFeatureElementSubtraction, IfcFillAreaStyle, IfcFillAreaStyleHatching, IfcFillAreaStyleTiles, IfcFillStyleSelect, IfcFilter, IfcFilterType, IfcFilterTypeEnum, IfcFireSuppressionTerminal, IfcFireSuppressionTerminalType, IfcFireSuppressionTerminalTypeEnum, IfcFixedReferenceSweptAreaSolid, IfcFlowController, IfcFlowControllerType, IfcFlowDirectionEnum, IfcFlowFitting, IfcFlowFittingType, IfcFlowInstrument, IfcFlowInstrumentType, IfcFlowInstrumentTypeEnum, IfcFlowMeter, IfcFlowMeterType, IfcFlowMeterTypeEnum, IfcFlowMovingDevice, IfcFlowMovingDeviceType, IfcFlowSegment, IfcFlowSegmentType, IfcFlowStorageDevice, IfcFlowStorageDeviceType, IfcFlowTerminal, IfcFlowTerminalType, IfcFlowTreatmentDevice, IfcFlowTreatmentDeviceType, IfcFontStyle, IfcFontVariant, IfcFontWeight, IfcFooting, IfcFootingType, IfcFootingTypeEnum, IfcForceMeasure, IfcFrequencyMeasure, IfcFurnishingElement, IfcFurnishingElementType, IfcFurniture, IfcFurnitureType, IfcFurnitureTypeEnum, IfcGeographicElement, IfcGeographicElementType, IfcGeographicElementTypeEnum, IfcGeometricCurveSet, IfcGeometricProjectionEnum, IfcGeometricRepresentationContext, IfcGeometricRepresentationItem, IfcGeometricRepresentationSubContext, IfcGeometricSet, IfcGeometricSetSelect, IfcGlobalOrLocalEnum, IfcGloballyUniqueId, IfcGrid, IfcGridAxis, IfcGridPlacement, IfcGridPlacementDirectionSelect, IfcGridTypeEnum, IfcGroup, IfcHalfSpaceSolid, IfcHatchLineDistanceSelect, IfcHeatExchanger, IfcHeatExchangerType, IfcHeatExchangerTypeEnum, IfcHeatFluxDensityMeasure, IfcHeatingValueMeasure, IfcHumidifier, IfcHumidifierType, IfcHumidifierTypeEnum, IfcIShapeProfileDef, IfcIdentifier, IfcIlluminanceMeasure, IfcImageTexture, IfcIndexedColourMap, IfcIndexedPolyCurve, IfcIndexedPolygonalFace, IfcIndexedPolygonalFaceWithVoids, IfcIndexedTextureMap, IfcIndexedTriangleTextureMap, IfcInductanceMeasure, IfcInteger, IfcIntegerCountRateMeasure, IfcInterceptor, IfcInterceptorType, IfcInterceptorTypeEnum, IfcInternalOrExternalEnum, IfcIntersectionCurve, IfcInventory, IfcInventoryTypeEnum, IfcIonConcentrationMeasure, IfcIrregularTimeSeries, IfcIrregularTimeSeriesValue, IfcIsothermalMoistureCapacityMeasure, IfcJunctionBox, IfcJunctionBoxType, IfcJunctionBoxTypeEnum, IfcKinematicViscosityMeasure, IfcKnotType, IfcLShapeProfileDef, IfcLabel, IfcLaborResource, IfcLaborResourceType, IfcLaborResourceTypeEnum, IfcLagTime, IfcLamp, IfcLampType, IfcLampTypeEnum, IfcLanguageId, IfcLayerSetDirectionEnum, IfcLayeredItem, IfcLengthMeasure, IfcLibraryInformation, IfcLibraryReference, IfcLibrarySelect, IfcLightDistributionCurveEnum, IfcLightDistributionData, IfcLightDistributionDataSourceSelect, IfcLightEmissionSourceEnum, IfcLightFixture, IfcLightFixtureType, IfcLightFixtureTypeEnum, IfcLightIntensityDistribution, IfcLightSource, IfcLightSourceAmbient, IfcLightSourceDirectional, IfcLightSourceGoniometric, IfcLightSourcePositional, IfcLightSourceSpot, IfcLine, IfcLineIndex, IfcLinearForceMeasure, IfcLinearMomentMeasure, IfcLinearStiffnessMeasure, IfcLinearVelocityMeasure, IfcLoadGroupTypeEnum, IfcLocalPlacement, IfcLogical, IfcLogicalOperatorEnum, IfcLoop, IfcLuminousFluxMeasure, IfcLuminousIntensityDistributionMeasure, IfcLuminousIntensityMeasure, IfcMagneticFluxDensityMeasure, IfcMagneticFluxMeasure, IfcManifoldSolidBrep, IfcMapConversion, IfcMappedItem, IfcMassDensityMeasure, IfcMassFlowRateMeasure, IfcMassMeasure, IfcMassPerLengthMeasure, IfcMaterial, IfcMaterialClassificationRelationship, IfcMaterialConstituent, IfcMaterialConstituentSet, IfcMaterialDefinition, IfcMaterialDefinitionRepresentation, IfcMaterialLayer, IfcMaterialLayerSet, IfcMaterialLayerSetUsage, IfcMaterialLayerWithOffsets, IfcMaterialList, IfcMaterialProfile, IfcMaterialProfileSet, IfcMaterialProfileSetUsage, IfcMaterialProfileSetUsageTapering, IfcMaterialProfileWithOffsets, IfcMaterialProperties, IfcMaterialRelationship, IfcMaterialSelect, IfcMaterialUsageDefinition, IfcMeasureValue, IfcMeasureWithUnit, IfcMechanicalFastener, IfcMechanicalFastenerType, IfcMechanicalFastenerTypeEnum, IfcMedicalDevice, IfcMedicalDeviceType, IfcMedicalDeviceTypeEnum, IfcMember, IfcMemberStandardCase, IfcMemberType, IfcMemberTypeEnum, IfcMetric, IfcMetricValueSelect, IfcMirroredProfileDef, IfcModulusOfElasticityMeasure, IfcModulusOfLinearSubgradeReactionMeasure, IfcModulusOfRotationalSubgradeReactionMeasure, IfcModulusOfRotationalSubgradeReactionSelect, IfcModulusOfSubgradeReactionMeasure, IfcModulusOfSubgradeReactionSelect, IfcModulusOfTranslationalSubgradeReactionSelect, IfcMoistureDiffusivityMeasure, IfcMolecularWeightMeasure, IfcMomentOfInertiaMeasure, IfcMonetaryMeasure, IfcMonetaryUnit, IfcMonthInYearNumber, IfcMotorConnection, IfcMotorConnectionType, IfcMotorConnectionTypeEnum, IfcNamedUnit, IfcNonNegativeLengthMeasure, IfcNormalisedRatioMeasure, IfcNullStyle, IfcNumericMeasure, IfcObject, IfcObjectDefinition, IfcObjectPlacement, IfcObjectReferenceSelect, IfcObjectTypeEnum, IfcObjective, IfcObjectiveEnum, IfcOccupant, IfcOccupantTypeEnum, IfcOffsetCurve2D, IfcOffsetCurve3D, IfcOpenShell, IfcOpeningElement, IfcOpeningElementTypeEnum, IfcOpeningStandardCase, IfcOrganization, IfcOrganizationRelationship, IfcOrientedEdge, IfcOuterBoundaryCurve, IfcOutlet, IfcOutletType, IfcOutletTypeEnum, IfcOwnerHistory, IfcPHMeasure, IfcParameterValue, IfcParameterizedProfileDef, IfcPath, IfcPcurve, IfcPerformanceHistory, IfcPerformanceHistoryTypeEnum, IfcPermeableCoveringOperationEnum, IfcPermeableCoveringProperties, IfcPermit, IfcPermitTypeEnum, IfcPerson, IfcPersonAndOrganization, IfcPhysicalComplexQuantity, IfcPhysicalOrVirtualEnum, IfcPhysicalQuantity, IfcPhysicalSimpleQuantity, IfcPile, IfcPileConstructionEnum, IfcPileType, IfcPileTypeEnum, IfcPipeFitting, IfcPipeFittingType, IfcPipeFittingTypeEnum, IfcPipeSegment, IfcPipeSegmentType, IfcPipeSegmentTypeEnum, IfcPixelTexture, IfcPlacement, IfcPlanarBox, IfcPlanarExtent, IfcPlanarForceMeasure, IfcPlane, IfcPlaneAngleMeasure, IfcPlate, IfcPlateStandardCase, IfcPlateType, IfcPlateTypeEnum, IfcPoint, IfcPointOnCurve, IfcPointOnSurface, IfcPointOrVertexPoint, IfcPolyLoop, IfcPolygonalBoundedHalfSpace, IfcPolygonalFaceSet, IfcPolyline, IfcPort, IfcPositiveInteger, IfcPositiveLengthMeasure, IfcPositivePlaneAngleMeasure, IfcPositiveRatioMeasure, IfcPostalAddress, IfcPowerMeasure, IfcPreDefinedColour, IfcPreDefinedCurveFont, IfcPreDefinedItem, IfcPreDefinedProperties, IfcPreDefinedPropertySet, IfcPreDefinedTextFont, IfcPreferredSurfaceCurveRepresentation, IfcPresentableText, IfcPresentationItem, IfcPresentationLayerAssignment, IfcPresentationLayerWithStyle, IfcPresentationStyle, IfcPresentationStyleAssignment, IfcPresentationStyleSelect, IfcPressureMeasure, IfcProcedure, IfcProcedureType, IfcProcedureTypeEnum, IfcProcess, IfcProcessSelect, IfcProduct, IfcProductDefinitionShape, IfcProductRepresentation, IfcProductRepresentationSelect, IfcProductSelect, IfcProfileDef, IfcProfileProperties, IfcProfileTypeEnum, IfcProject, IfcProjectLibrary, IfcProjectOrder, IfcProjectOrderTypeEnum, IfcProjectedCRS, IfcProjectedOrTrueLengthEnum, IfcProjectionElement, IfcProjectionElementTypeEnum, IfcProperty, IfcPropertyAbstraction, IfcPropertyBoundedValue, IfcPropertyDefinition, IfcPropertyDependencyRelationship, IfcPropertyEnumeratedValue, IfcPropertyEnumeration, IfcPropertyListValue, IfcPropertyReferenceValue, IfcPropertySet, IfcPropertySetDefinition, IfcPropertySetDefinitionSelect, IfcPropertySetDefinitionSet, IfcPropertySetTemplate, IfcPropertySetTemplateTypeEnum, IfcPropertySingleValue, IfcPropertyTableValue, IfcPropertyTemplate, IfcPropertyTemplateDefinition, IfcProtectiveDevice, IfcProtectiveDeviceTrippingUnit, IfcProtectiveDeviceTrippingUnitType, IfcProtectiveDeviceTrippingUnitTypeEnum, IfcProtectiveDeviceType, IfcProtectiveDeviceTypeEnum, IfcProxy, IfcPump, IfcPumpType, IfcPumpTypeEnum, IfcQuantityArea, IfcQuantityCount, IfcQuantityLength, IfcQuantitySet, IfcQuantityTime, IfcQuantityVolume, IfcQuantityWeight, IfcRadioActivityMeasure, IfcRailing, IfcRailingType, IfcRailingTypeEnum, IfcRamp, IfcRampFlight, IfcRampFlightType, IfcRampFlightTypeEnum, IfcRampType, IfcRampTypeEnum, IfcRatioMeasure, IfcRationalBSplineCurveWithKnots, IfcRationalBSplineSurfaceWithKnots, IfcReal, IfcRectangleHollowProfileDef, IfcRectangleProfileDef, IfcRectangularPyramid, IfcRectangularTrimmedSurface, IfcRecurrencePattern, IfcRecurrenceTypeEnum, IfcReference, IfcReflectanceMethodEnum, IfcRegularTimeSeries, IfcReinforcementBarProperties, IfcReinforcementDefinitionProperties, IfcReinforcingBar, IfcReinforcingBarRoleEnum, IfcReinforcingBarSurfaceEnum, IfcReinforcingBarType, IfcReinforcingBarTypeEnum, IfcReinforcingElement, IfcReinforcingElementType, IfcReinforcingMesh, IfcReinforcingMeshType, IfcReinforcingMeshTypeEnum, IfcRelAggregates, IfcRelAssigns, IfcRelAssignsToActor, IfcRelAssignsToControl, IfcRelAssignsToGroup, IfcRelAssignsToGroupByFactor, IfcRelAssignsToProcess, IfcRelAssignsToProduct, IfcRelAssignsToResource, IfcRelAssociates, IfcRelAssociatesApproval, IfcRelAssociatesClassification, IfcRelAssociatesConstraint, IfcRelAssociatesDocument, IfcRelAssociatesLibrary, IfcRelAssociatesMaterial, IfcRelConnects, IfcRelConnectsElements, IfcRelConnectsPathElements, IfcRelConnectsPortToElement, IfcRelConnectsPorts, IfcRelConnectsStructuralActivity, IfcRelConnectsStructuralMember, IfcRelConnectsWithEccentricity, IfcRelConnectsWithRealizingElements, IfcRelContainedInSpatialStructure, IfcRelCoversBldgElements, IfcRelCoversSpaces, IfcRelDeclares, IfcRelDecomposes, IfcRelDefines, IfcRelDefinesByObject, IfcRelDefinesByProperties, IfcRelDefinesByTemplate, IfcRelDefinesByType, IfcRelFillsElement, IfcRelFlowControlElements, IfcRelInterferesElements, IfcRelNests, IfcRelProjectsElement, IfcRelReferencedInSpatialStructure, IfcRelSequence, IfcRelServicesBuildings, IfcRelSpaceBoundary, IfcRelSpaceBoundary1stLevel, IfcRelSpaceBoundary2ndLevel, IfcRelVoidsElement, IfcRelationship, IfcReparametrisedCompositeCurveSegment, IfcRepresentation, IfcRepresentationContext, IfcRepresentationItem, IfcRepresentationMap, IfcResource, IfcResourceApprovalRelationship, IfcResourceConstraintRelationship, IfcResourceLevelRelationship, IfcResourceObjectSelect, IfcResourceSelect, IfcResourceTime, IfcRevolvedAreaSolid, IfcRevolvedAreaSolidTapered, IfcRightCircularCone, IfcRightCircularCylinder, IfcRoleEnum, IfcRoof, IfcRoofType, IfcRoofTypeEnum, IfcRoot, IfcRotationalFrequencyMeasure, IfcRotationalMassMeasure, IfcRotationalStiffnessMeasure, IfcRotationalStiffnessSelect, IfcRoundedRectangleProfileDef, IfcSIPrefix, IfcSIUnit, IfcSIUnitName, IfcSanitaryTerminal, IfcSanitaryTerminalType, IfcSanitaryTerminalTypeEnum, IfcSchedulingTime, IfcSeamCurve, IfcSectionModulusMeasure, IfcSectionProperties, IfcSectionReinforcementProperties, IfcSectionTypeEnum, IfcSectionalAreaIntegralMeasure, IfcSectionedSpine, IfcSegmentIndexSelect, IfcSensor, IfcSensorType, IfcSensorTypeEnum, IfcSequenceEnum, IfcShadingDevice, IfcShadingDeviceType, IfcShadingDeviceTypeEnum, IfcShapeAspect, IfcShapeModel, IfcShapeRepresentation, IfcShearModulusMeasure, IfcShell, IfcShellBasedSurfaceModel, IfcSimpleProperty, IfcSimplePropertyTemplate, IfcSimplePropertyTemplateTypeEnum, IfcSimpleValue, IfcSite, IfcSizeSelect, IfcSlab, IfcSlabElementedCase, IfcSlabStandardCase, IfcSlabType, IfcSlabTypeEnum, IfcSlippageConnectionCondition, IfcSolarDevice, IfcSolarDeviceType, IfcSolarDeviceTypeEnum, IfcSolidAngleMeasure, IfcSolidModel, IfcSolidOrShell, IfcSoundPowerLevelMeasure, IfcSoundPowerMeasure, IfcSoundPressureLevelMeasure, IfcSoundPressureMeasure, IfcSpace, IfcSpaceBoundarySelect, IfcSpaceHeater, IfcSpaceHeaterType, IfcSpaceHeaterTypeEnum, IfcSpaceType, IfcSpaceTypeEnum, IfcSpatialElement, IfcSpatialElementType, IfcSpatialStructureElement, IfcSpatialStructureElementType, IfcSpatialZone, IfcSpatialZoneType, IfcSpatialZoneTypeEnum, IfcSpecificHeatCapacityMeasure, IfcSpecularExponent, IfcSpecularHighlightSelect, IfcSpecularRoughness, IfcSphere, IfcSphericalSurface, IfcStackTerminal, IfcStackTerminalType, IfcStackTerminalTypeEnum, IfcStair, IfcStairFlight, IfcStairFlightType, IfcStairFlightTypeEnum, IfcStairType, IfcStairTypeEnum, IfcStateEnum, IfcStructuralAction, IfcStructuralActivity, IfcStructuralActivityAssignmentSelect, IfcStructuralAnalysisModel, IfcStructuralConnection, IfcStructuralConnectionCondition, IfcStructuralCurveAction, IfcStructuralCurveActivityTypeEnum, IfcStructuralCurveConnection, IfcStructuralCurveMember, IfcStructuralCurveMemberTypeEnum, IfcStructuralCurveMemberVarying, IfcStructuralCurveReaction, IfcStructuralItem, IfcStructuralLinearAction, IfcStructuralLoad, IfcStructuralLoadCase, IfcStructuralLoadConfiguration, IfcStructuralLoadGroup, IfcStructuralLoadLinearForce, IfcStructuralLoadOrResult, IfcStructuralLoadPlanarForce, IfcStructuralLoadSingleDisplacement, IfcStructuralLoadSingleDisplacementDistortion, IfcStructuralLoadSingleForce, IfcStructuralLoadSingleForceWarping, IfcStructuralLoadStatic, IfcStructuralLoadTemperature, IfcStructuralMember, IfcStructuralPlanarAction, IfcStructuralPointAction, IfcStructuralPointConnection, IfcStructuralPointReaction, IfcStructuralReaction, IfcStructuralResultGroup, IfcStructuralSurfaceAction, IfcStructuralSurfaceActivityTypeEnum, IfcStructuralSurfaceConnection, IfcStructuralSurfaceMember, IfcStructuralSurfaceMemberTypeEnum, IfcStructuralSurfaceMemberVarying, IfcStructuralSurfaceReaction, IfcStyleAssignmentSelect, IfcStyleModel, IfcStyledItem, IfcStyledRepresentation, IfcSubContractResource, IfcSubContractResourceType, IfcSubContractResourceTypeEnum, IfcSubedge, IfcSurface, IfcSurfaceCurve, IfcSurfaceCurveSweptAreaSolid, IfcSurfaceFeature, IfcSurfaceFeatureTypeEnum, IfcSurfaceOfLinearExtrusion, IfcSurfaceOfRevolution, IfcSurfaceOrFaceSurface, IfcSurfaceReinforcementArea, IfcSurfaceSide, IfcSurfaceStyle, IfcSurfaceStyleElementSelect, IfcSurfaceStyleLighting, IfcSurfaceStyleRefraction, IfcSurfaceStyleRendering, IfcSurfaceStyleShading, IfcSurfaceStyleWithTextures, IfcSurfaceTexture, IfcSweptAreaSolid, IfcSweptDiskSolid, IfcSweptDiskSolidPolygonal, IfcSweptSurface, IfcSwitchingDevice, IfcSwitchingDeviceType, IfcSwitchingDeviceTypeEnum, IfcSystem, IfcSystemFurnitureElement, IfcSystemFurnitureElementType, IfcSystemFurnitureElementTypeEnum, IfcTShapeProfileDef, IfcTable, IfcTableColumn, IfcTableRow, IfcTank, IfcTankType, IfcTankTypeEnum, IfcTask, IfcTaskDurationEnum, IfcTaskTime, IfcTaskTimeRecurring, IfcTaskType, IfcTaskTypeEnum, IfcTelecomAddress, IfcTemperatureGradientMeasure, IfcTemperatureRateOfChangeMeasure, IfcTendon, IfcTendonAnchor, IfcTendonAnchorType, IfcTendonAnchorTypeEnum, IfcTendonType, IfcTendonTypeEnum, IfcTessellatedFaceSet, IfcTessellatedItem, IfcText, IfcTextAlignment, IfcTextDecoration, IfcTextFontName, IfcTextFontSelect, IfcTextLiteral, IfcTextLiteralWithExtent, IfcTextPath, IfcTextStyle, IfcTextStyleFontModel, IfcTextStyleForDefinedFont, IfcTextStyleTextModel, IfcTextTransformation, IfcTextureCoordinate, IfcTextureCoordinateGenerator, IfcTextureMap, IfcTextureVertex, IfcTextureVertexList, IfcThermalAdmittanceMeasure, IfcThermalConductivityMeasure, IfcThermalExpansionCoefficientMeasure, IfcThermalResistanceMeasure, IfcThermalTransmittanceMeasure, IfcThermodynamicTemperatureMeasure, IfcTime, IfcTimeMeasure, IfcTimeOrRatioSelect, IfcTimePeriod, IfcTimeSeries, IfcTimeSeriesDataTypeEnum, IfcTimeSeriesValue, IfcTimeStamp, IfcTopologicalRepresentationItem, IfcTopologyRepresentation, IfcToroidalSurface, IfcTorqueMeasure, IfcTransformer, IfcTransformerType, IfcTransformerTypeEnum, IfcTransitionCode, IfcTranslationalStiffnessSelect, IfcTransportElement, IfcTransportElementType, IfcTransportElementTypeEnum, IfcTrapeziumProfileDef, IfcTriangulatedFaceSet, IfcTrimmedCurve, IfcTrimmingPreference, IfcTrimmingSelect, IfcTubeBundle, IfcTubeBundleType, IfcTubeBundleTypeEnum, IfcTypeObject, IfcTypeProcess, IfcTypeProduct, IfcTypeResource, IfcURIReference, IfcUShapeProfileDef, IfcUnit, IfcUnitAssignment, IfcUnitEnum, IfcUnitaryControlElement, IfcUnitaryControlElementType, IfcUnitaryControlElementTypeEnum, IfcUnitaryEquipment, IfcUnitaryEquipmentType, IfcUnitaryEquipmentTypeEnum, IfcValue, IfcValve, IfcValveType, IfcValveTypeEnum, IfcVaporPermeabilityMeasure, IfcVector, IfcVectorOrDirection, IfcVertex, IfcVertexLoop, IfcVertexPoint, IfcVibrationIsolator, IfcVibrationIsolatorType, IfcVibrationIsolatorTypeEnum, IfcVirtualElement, IfcVirtualGridIntersection, IfcVoidingFeature, IfcVoidingFeatureTypeEnum, IfcVolumeMeasure, IfcVolumetricFlowRateMeasure, IfcWall, IfcWallElementedCase, IfcWallStandardCase, IfcWallType, IfcWallTypeEnum, IfcWarpingConstantMeasure, IfcWarpingMomentMeasure, IfcWarpingStiffnessSelect, IfcWasteTerminal, IfcWasteTerminalType, IfcWasteTerminalTypeEnum, IfcWindow, IfcWindowLiningProperties, IfcWindowPanelOperationEnum, IfcWindowPanelPositionEnum, IfcWindowPanelProperties, IfcWindowStandardCase, IfcWindowStyle, IfcWindowStyleConstructionEnum, IfcWindowStyleOperationEnum, IfcWindowType, IfcWindowTypeEnum, IfcWindowTypePartitioningEnum, IfcWorkCalendar, IfcWorkCalendarTypeEnum, IfcWorkControl, IfcWorkPlan, IfcWorkPlanTypeEnum, IfcWorkSchedule, IfcWorkScheduleTypeEnum, IfcWorkTime, IfcZShapeProfileDef, IfcZone, UNDEFINED } Enum; IFC_PARSE_API boost::optional Parent(Enum v); IFC_PARSE_API Enum FromString(const std::string& s); From 4b57a7bdd6d0b5e17e7d7a82cfa30a66bca4da22 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 26 Jan 2019 15:00:20 +0100 Subject: [PATCH 02/52] Set a lower bound tot faceset_helper::epsilon --- src/ifcgeom/IfcGeomFunctions.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index fff22622f9..f0764ccc1f 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -3822,6 +3822,12 @@ IfcGeom::Kernel::faceset_helper::faceset_helper(Kernel* kernel, const IfcSchema: } eps_ = kernel->getValue(GV_PRECISION) * 10. * (std::min)(1.0, bdiff); + + if (eps_ < Precision::Confusion()) { + // occt uses some hard coded precision values, don't go smaller than that. + // @todo, can be reset though with BRepLib::Precision(double) + eps_ = Precision::Confusion(); + } std::map, int> edge_use; From bd3118b4a3dfb79b1a4931eb1cc09d9360b06305 Mon Sep 17 00:00:00 2001 From: Xavier Lamorlette Date: Tue, 29 Jan 2019 10:35:12 +0100 Subject: [PATCH 03/52] Fix a "declaration of 'identifier' hides class member" warning --- src/ifcgeom/IfcRepresentationShapeItem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeom/IfcRepresentationShapeItem.h b/src/ifcgeom/IfcRepresentationShapeItem.h index 29d5ca264b..c06ecdd4b8 100644 --- a/src/ifcgeom/IfcRepresentationShapeItem.h +++ b/src/ifcgeom/IfcRepresentationShapeItem.h @@ -46,7 +46,7 @@ namespace IfcGeom { const gp_GTrsf& Placement() const { return placement; } bool hasStyle() const { return style != 0; } const SurfaceStyle& Style() const { return *style; } - void setStyle(const SurfaceStyle* style) { this->style = style; } + void setStyle(const SurfaceStyle* newStyle) { style = newStyle; } }; typedef std::vector IfcRepresentationShapeItems; } From 3e041a1fb22aadd70932d4552c1286ab1bae2b71 Mon Sep 17 00:00:00 2001 From: Xavier Lamorlette Date: Tue, 29 Jan 2019 12:02:49 +0100 Subject: [PATCH 04/52] Migrate deprecated bind1st and mem_fun to C++11 bind --- src/ifcgeom/IfcGeomFilter.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ifcgeom/IfcGeomFilter.h b/src/ifcgeom/IfcGeomFilter.h index d766f2b463..4fbeca2726 100644 --- a/src/ifcgeom/IfcGeomFilter.h +++ b/src/ifcgeom/IfcGeomFilter.h @@ -171,8 +171,7 @@ namespace IfcGeom bool operator()(IfcSchema::IfcProduct* prod) const { - // @note bind1st() and mem_fun() deprecated in C++11, use bind() and mem_fn() when migrating to C++11. - return filter::match(prod, std::bind1st(std::mem_fun(&string_arg_filter::match), this)); + return filter::match(prod, std::bind(&string_arg_filter::match, this, std::placeholders::_1)); } void update_description() @@ -219,7 +218,7 @@ namespace IfcGeom bool operator()(IfcSchema::IfcProduct* prod) const { - return filter::match(prod, std::bind1st(std::mem_fun(&layer_filter::match), this)); + return filter::match(prod, std::bind(&layer_filter::match, this, std::placeholders::_1)); } struct wildcards_match @@ -285,7 +284,7 @@ namespace IfcGeom bool operator()(IfcSchema::IfcProduct* prod) const { - return filter::match(prod, std::bind1st(std::mem_fun(&entity_filter::match), this)); + return filter::match(prod, std::bind(&entity_filter::match, this, std::placeholders::_1)); } void update_description() From 81f978f1010f7fdd779136317f21cb461daccb1d Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 6 Feb 2019 12:18:10 +0100 Subject: [PATCH 05/52] Changes to Axis with missing refDirection --- src/ifcgeom/IfcGeomHelpers.cpp | 41 ++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/src/ifcgeom/IfcGeomHelpers.cpp b/src/ifcgeom/IfcGeomHelpers.cpp index cf440772ab..0e772b64c2 100644 --- a/src/ifcgeom/IfcGeomHelpers.cpp +++ b/src/ifcgeom/IfcGeomHelpers.cpp @@ -158,15 +158,38 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcVector* l, gp_Vec& v) { } bool IfcGeom::Kernel::convert(const IfcSchema::IfcAxis2Placement3D* l, gp_Trsf& trsf) { - IN_CACHE(IfcAxis2Placement3D,l,gp_Trsf,trsf) - gp_Pnt o;gp_Dir axis = gp_Dir(0,0,1);gp_Dir refDirection; - IfcGeom::Kernel::convert(l->Location(),o); - bool hasRef = l->hasRefDirection(); - if ( l->hasAxis() ) IfcGeom::Kernel::convert(l->Axis(),axis); - if ( hasRef ) IfcGeom::Kernel::convert(l->RefDirection(),refDirection); - gp_Ax3 ax3; - if ( hasRef ) ax3 = gp_Ax3(o,axis,refDirection); - else ax3 = gp_Ax3(o,axis); + IN_CACHE(IfcAxis2Placement3D, l, gp_Trsf, trsf) + + gp_Pnt o; + gp_Dir axis(0, 0, 1); + gp_Dir refDirection; + + IfcGeom::Kernel::convert(l->Location(), o); + const bool hasAxis = l->hasAxis(); + const bool hasRef = l->hasRefDirection(); + + if (hasAxis != hasRef) { + Logger::Warning("Axis and RefDirection should be specified together", l); + } + + if (hasAxis) { + IfcGeom::Kernel::convert(l->Axis(), axis); + } + + if (hasRef) { + IfcGeom::Kernel::convert(l->RefDirection(), refDirection); + } else { + if (!axis.IsParallel(gp::DX(), 1.e-5)) { + refDirection = gp::DX(); + } else { + refDirection = gp::DZ(); + } + gp_Vec Xvec = axis.Dot(refDirection) * axis; + gp_Vec Xaxis = refDirection.XYZ() - Xvec.XYZ(); + refDirection = Xaxis; + } + + gp_Ax3 ax3(o, axis, refDirection); if (!axis_equal(ax3, (gp_Ax3) gp::XOY(), getValue(GV_PRECISION))) { trsf.SetTransformation(ax3, gp::XOY()); From 40c2602b0ef06abb1f49a224bfaef2468ca8cb10 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 6 Feb 2019 13:29:56 +0100 Subject: [PATCH 06/52] Fix discrepancy with v06 --- src/ifcgeom/IfcGeomHelpers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeom/IfcGeomHelpers.cpp b/src/ifcgeom/IfcGeomHelpers.cpp index 0e772b64c2..2517be14a0 100644 --- a/src/ifcgeom/IfcGeomHelpers.cpp +++ b/src/ifcgeom/IfcGeomHelpers.cpp @@ -169,7 +169,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcAxis2Placement3D* l, gp_Trsf& const bool hasRef = l->hasRefDirection(); if (hasAxis != hasRef) { - Logger::Warning("Axis and RefDirection should be specified together", l); + Logger::Warning("Axis and RefDirection should be specified together", l->entity); } if (hasAxis) { From 38f7ccdc201e3ed61a5085a9dd8eccbd375966a6 Mon Sep 17 00:00:00 2001 From: Stinkfist0 Date: Fri, 28 Sep 2018 15:00:48 +0300 Subject: [PATCH 07/52] Optimize IfcFile::entitiesByReference() by reserving capacity for IfcEntityList in advance. Around 18.4 % speed-up (avg. of first 2000 calls) when converting a somewhat large (176 MB) file to XML. --- src/ifcparse/IfcEntityList.h | 1 + src/ifcparse/IfcParse.cpp | 11 +++++------ src/ifcparse/IfcUtil.cpp | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ifcparse/IfcEntityList.h b/src/ifcparse/IfcEntityList.h index 3953a29715..d8789fee4c 100644 --- a/src/ifcparse/IfcEntityList.h +++ b/src/ifcparse/IfcEntityList.h @@ -40,6 +40,7 @@ public: it end(); IfcUtil::IfcBaseClass* operator[] (int i); unsigned int size() const; + void reserve(unsigned capacity); bool contains(IfcUtil::IfcBaseClass*) const; template typename U::list::ptr as() { diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 83b0740bdb..20d7cb53dd 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1793,17 +1793,16 @@ IfcEntityList::ptr IfcFile::entitiesByType(const std::string& t) { IfcEntityList::ptr IfcFile::entitiesByReference(int t) { entities_by_ref_t::const_iterator it = byref.find(t); - IfcEntityList::ptr return_value; + IfcEntityList::ptr ret; if (it != byref.end()) { + ret.reset(new IfcEntityList); + ret->reserve((unsigned)it->second.size()); const std::vector& ids = it->second; for (std::vector::const_iterator jt = ids.begin(); jt != ids.end(); ++jt) { - if (!return_value) { - return_value.reset(new IfcEntityList); - } - return_value->push(entityById(*jt)); + ret->push(entityById(*jt)); } } - return return_value; + return ret; } IfcUtil::IfcBaseClass* IfcFile::entityById(int id) { diff --git a/src/ifcparse/IfcUtil.cpp b/src/ifcparse/IfcUtil.cpp index 5c2546c5e7..fb4c48a815 100644 --- a/src/ifcparse/IfcUtil.cpp +++ b/src/ifcparse/IfcUtil.cpp @@ -48,6 +48,7 @@ void IfcEntityList::push(const IfcEntityList::ptr& l) { } } unsigned int IfcEntityList::size() const { return (unsigned int) ls.size(); } +void IfcEntityList::reserve(unsigned capacity) { ls.reserve((size_t)capacity); } IfcEntityList::it IfcEntityList::begin() { return ls.begin(); } IfcEntityList::it IfcEntityList::end() { return ls.end(); } IfcUtil::IfcBaseClass* IfcEntityList::operator[] (int i) { From 910cdb3754c00589de745944bd4e3f6ae161c83a Mon Sep 17 00:00:00 2001 From: Stinkfist0 Date: Mon, 1 Oct 2018 13:19:31 +0300 Subject: [PATCH 08/52] IfcConvert: print durations of file parsing and XML conversion. --- src/ifcconvert/IfcConvert.cpp | 53 ++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index 4659875800..7847f139b8 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -116,6 +116,7 @@ bool rename_file(const std::string& old_filename, const std::string& new_filenam static std::stringstream log_stream; void write_log(bool); +std::string format_duration(time_t start, time_t end); /// @todo make the filters non-global IfcGeom::entity_filter entity_filter; // Entity filter is used always by default. @@ -473,11 +474,15 @@ int main(int argc, char** argv) int exit_code = EXIT_FAILURE; try { if (init_input_file(input_filename, ifc_file, no_progress || quiet, mmap)) { + time_t start, end; + time(&start); XmlSerializer s(output_temp_filename); s.setFile(&ifc_file); Logger::Status("Writing XML output..."); s.finalize(); - Logger::Status("Done!"); + time(&end); + Logger::Status("Done! Conversion took " + format_duration(start, end)); + rename_file(output_temp_filename, output_filename); exit_code = EXIT_SUCCESS; } @@ -760,28 +765,33 @@ int main(int argc, char** argv) time(&end); - if (!quiet) { - int seconds = (int)difftime(end, start); - std::stringstream msg; - int minutes = seconds / 60; - seconds = seconds % 60; - msg << "\nConversion took"; - if (minutes > 0) { - msg << " " << minutes << " minute"; - if (minutes > 1) { - msg << "s"; - } - } - msg << " " << seconds << " second"; - if (seconds > 1) { - msg << "s"; - } - Logger::Status(msg.str()); - } + if (!quiet) { + Logger::Status("\nConversion took " + format_duration(start, end)); + } return successful ? EXIT_SUCCESS : EXIT_FAILURE; } +std::string format_duration(time_t start, time_t end) +{ + int seconds = (int)difftime(end, start); + std::stringstream ss; + int minutes = seconds / 60; + seconds = seconds % 60; + if (minutes > 0) { + ss << minutes << " minute"; + if (minutes == 0 || minutes > 1) { + ss << "s"; + } + ss << " "; + } + ss << seconds << " second"; + if (seconds == 0 || seconds > 1) { + ss << "s"; + } + return ss.str(); +} + void write_log(bool header) { std::string log = log_stream.str(); if (!log.empty()) { @@ -794,9 +804,12 @@ void write_log(bool header) { bool init_input_file(const std::string &filename, IfcParse::IfcFile &ifc_file, bool no_progress, bool mmap) { + time_t start, end; + // Prevent IfcFile::Init() prints by setting output to null temporarily if (no_progress) { Logger::SetOutput(NULL, &log_stream); } + time(&start); #ifdef USE_MMAP if (!ifc_file.Init(filename, mmap)) { #else @@ -806,8 +819,10 @@ bool init_input_file(const std::string &filename, IfcParse::IfcFile &ifc_file, b Logger::Error("Unable to parse input file '" + filename + "'"); return false; } + time(&end); if (no_progress) { Logger::SetOutput(&std::cout, &log_stream); } + else { Logger::Status("Parsing input file took " + format_duration(start, end)); } return true; } From 9211f80625ce4882b7aa08ea16390cb46001d439 Mon Sep 17 00:00:00 2001 From: Stinkfist0 Date: Mon, 1 Oct 2018 15:11:34 +0300 Subject: [PATCH 09/52] IfcFile::entitiesByReference: cache loaded references. Profiling shows around 3x speed-up (avg. of first 5000 calls to this function). --- src/ifcparse/IfcFile.h | 2 ++ src/ifcparse/IfcParse.cpp | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/ifcparse/IfcFile.h b/src/ifcparse/IfcFile.h index daa31feb27..1e871412fe 100644 --- a/src/ifcparse/IfcFile.h +++ b/src/ifcparse/IfcFile.h @@ -39,6 +39,7 @@ public: typedef boost::unordered_map entity_by_id_t; typedef std::map entity_by_guid_t; typedef std::map > entities_by_ref_t; + typedef std::map ref_map_t; typedef entity_by_id_t::const_iterator const_iterator; class type_iterator : private entities_by_type_t::const_iterator { @@ -77,6 +78,7 @@ private: entities_by_type_t bytype; entities_by_type_t bytype_excl; entities_by_ref_t byref; + ref_map_t by_ref_cached_; entity_by_guid_t byguid; entity_entity_map_t entity_file_map; diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 20d7cb53dd..cd904790af 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1795,12 +1795,19 @@ IfcEntityList::ptr IfcFile::entitiesByReference(int t) { entities_by_ref_t::const_iterator it = byref.find(t); IfcEntityList::ptr ret; if (it != byref.end()) { - ret.reset(new IfcEntityList); - ret->reserve((unsigned)it->second.size()); - const std::vector& ids = it->second; - for (std::vector::const_iterator jt = ids.begin(); jt != ids.end(); ++jt) { - ret->push(entityById(*jt)); - } + ref_map_t::const_iterator cached_it = by_ref_cached_.find(t); + if (cached_it != by_ref_cached_.end()) { + ret = cached_it->second; + } + else { + ret.reset(new IfcEntityList); + ret->reserve((unsigned)it->second.size()); + const std::vector& ids = it->second; + for (std::vector::const_iterator jt = ids.begin(); jt != ids.end(); ++jt) { + ret->push(entityById(*jt)); + } + by_ref_cached_[t] = ret; + } } return ret; } From 3bef32bb874b6f535164711bbefed85bdb8ac08f Mon Sep 17 00:00:00 2001 From: Stinkfist0 Date: Mon, 1 Oct 2018 19:59:18 +0300 Subject: [PATCH 10/52] IfcGeom::Kernel::get_layers: remove what would appear to be unnecessary code (yields 0 layers in my tests). The LayerAssignments() calls can take up to 95 % of the function's execution time yielding no results. --- src/ifcgeom/IfcGeomFunctions.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index 416a5d51d0..dc0a98e213 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -1807,20 +1807,6 @@ std::map IfcGeom::Kerne layers[(*jt)->Name()] = *jt; } } - - IfcRepresentationItem::list::ptr items = r->as(); - for (IfcRepresentationItem::list::it it = items->begin(); it != items->end(); ++it) { - IfcPresentationLayerAssignment::list::ptr a = (*it)-> - // LayerAssignments renamed from plural to singular, LayerAssignment, so work around that -#ifdef USE_IFC4 - LayerAssignment(); -#else - LayerAssignments(); -#endif - for (IfcPresentationLayerAssignment::list::it jt = a->begin(); jt != a->end(); ++jt) { - layers[(*jt)->Name()] = *jt; - } - } } return layers; } From 000d11daab57c2a264fbc3125a982ba5cbd4d71a Mon Sep 17 00:00:00 2001 From: Stinkfist0 Date: Fri, 21 Dec 2018 12:06:35 +0200 Subject: [PATCH 11/52] IfcFile: possibility to mark an entity as modified so that potential cache is invalidated. --- src/ifcparse/IfcFile.h | 4 ++++ src/ifcparse/IfcParse.cpp | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ifcparse/IfcFile.h b/src/ifcparse/IfcFile.h index 1e871412fe..66f5c86159 100644 --- a/src/ifcparse/IfcFile.h +++ b/src/ifcparse/IfcFile.h @@ -148,6 +148,10 @@ public: /// in the first function argument. IfcEntityList::ptr traverse(IfcUtil::IfcBaseClass* instance, int max_level=-1); + /// Marks entity as modified so that potential cache for it is invalidated. + /// @todo Currently the whole cache is invalidated. Implement more fine-grained invalidation. + void mark_entity_as_modified(int id); + #ifdef USE_MMAP bool Init(const std::string& fn, bool mmap=false); #else diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index cd904790af..9e2b3bb41d 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1213,7 +1213,9 @@ void IfcEntityInstanceData::setArgument(unsigned int i, Argument* a, IfcUtil::Ar if (this->file) { register_inverse_visitor visitor(*this->file, *this); apply_individual_instance_visitor(copy).apply(visitor); - } + + this->file->mark_entity_as_modified(id_); + } if (i < attributes_.size()) { attributes_[i] = copy; @@ -1429,6 +1431,11 @@ IfcEntityList::ptr IfcFile::traverse(IfcUtil::IfcBaseClass* instance, int max_le return IfcParse::traverse(instance, max_level); } +void IfcFile::mark_entity_as_modified(int /*id*/) +{ + by_ref_cached_.clear(); +} + void IfcFile::addEntities(IfcEntityList::ptr es) { for( IfcEntityList::it i = es->begin(); i != es->end(); ++ i ) { addEntity(*i); From 6bac067488c7d559371ab6d940b79f5e7c41f461 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 6 Feb 2019 13:33:38 +0100 Subject: [PATCH 12/52] Keep behaviour of returned null pointers for now --- src/ifcparse/IfcParse.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 9e2b3bb41d..0e63c88360 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1807,11 +1807,13 @@ IfcEntityList::ptr IfcFile::entitiesByReference(int t) { ret = cached_it->second; } else { - ret.reset(new IfcEntityList); - ret->reserve((unsigned)it->second.size()); - const std::vector& ids = it->second; - for (std::vector::const_iterator jt = ids.begin(); jt != ids.end(); ++jt) { - ret->push(entityById(*jt)); + if (it->second.size()) { + ret.reset(new IfcEntityList); + ret->reserve((unsigned)it->second.size()); + const std::vector& ids = it->second; + for (std::vector::const_iterator jt = ids.begin(); jt != ids.end(); ++jt) { + ret->push(entityById(*jt)); + } } by_ref_cached_[t] = ret; } From 9f7a7a2c5b17ad232e0770ffde57da3791019f7c Mon Sep 17 00:00:00 2001 From: Dawid Huczynski Date: Wed, 6 Feb 2019 00:42:49 +0000 Subject: [PATCH 13/52] basic update to blender2.8, use of existing mesh if id match, --- .../io_import_scene_ifc/__init__.py | 224 ++++++++++-------- 1 file changed, 130 insertions(+), 94 deletions(-) diff --git a/src/ifcblender/io_import_scene_ifc/__init__.py b/src/ifcblender/io_import_scene_ifc/__init__.py index dee3adb560..8c6ed16d23 100644 --- a/src/ifcblender/io_import_scene_ifc/__init__.py +++ b/src/ifcblender/io_import_scene_ifc/__init__.py @@ -27,42 +27,46 @@ bl_info = { "name": "IfcBlender", - "description": "Import files in the "\ + "description": "Import files in the " "Industry Foundation Classes (.ifc) file format", "author": "Thomas Krijnen, IfcOpenShell", - "blender": (2, 73, 0), + "blender": (2, 80, 0), "location": "File > Import", - "tracker_url": "https://sourceforge.net/p/ifcopenshell/"\ + "tracker_url": "https://sourceforge.net/p/ifcopenshell/" "_list/tickets?source=navbar", "category": "Import-Export"} if "bpy" in locals(): - import imp + import importlib if "ifcopenshell" in locals(): - imp.reload(ifcopenshell) + importlib.reload(ifcopenshell) import bpy import mathutils from bpy.props import StringProperty, IntProperty, BoolProperty from bpy_extras.io_utils import ImportHelper -major,minor = bpy.app.version[0:2] +major, minor = bpy.app.version[0:2] transpose_matrices = minor >= 62 -bpy.types.Object.ifc_id = IntProperty(name="IFC Entity ID", +bpy.types.Object.ifc_id = IntProperty( + name="IFC Entity ID", description="The STEP entity instance name") -bpy.types.Object.ifc_guid = StringProperty(name="IFC Entity GUID", +bpy.types.Object.ifc_guid = StringProperty( + name="IFC Entity GUID", description="The IFC Globally Unique Identifier") -bpy.types.Object.ifc_name = StringProperty(name="IFC Entity Name", +bpy.types.Object.ifc_name = StringProperty( + name="IFC Entity Name", description="The optional name attribute") -bpy.types.Object.ifc_type = StringProperty(name="IFC Entity Type", +bpy.types.Object.ifc_type = StringProperty( + name="IFC Entity Type", description="The STEP Datatype keyword") def import_ifc(filename, use_names, process_relations, blender_booleans): from . import ifcopenshell from .ifcopenshell import geom as ifcopenshell_geom - print("Reading %s..."%bpy.path.basename(filename)) + print(f"Reading {bpy.path.basename(filename)}...") settings = ifcopenshell_geom.settings() settings.set(settings.DISABLE_OPENING_SUBTRACTIONS, blender_booleans) iterator = ifcopenshell_geom.iterator(settings, filename) @@ -76,9 +80,14 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): openings = [] old_progress = -1 print("Creating geometry...") + collection = bpy.data.collections.new(f"{bpy.path.basename(filename)}") + bpy.context.scene.collection.children.link(collection) + if process_relations: + rel_collection = bpy.data.collections.new("Relations") + collection.children.link(rel_collection) while True: ob = iterator.get() - + f = ob.geometry.faces v = ob.geometry.verts mats = ob.geometry.materials @@ -86,54 +95,75 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): m = ob.transformation.matrix.data t = ob.type[0:21] nm = ob.name if len(ob.name) and use_names else ob.guid - - verts = [[v[i], v[i + 1], v[i + 2]] \ - for i in range(0, len(v), 3)] - faces = [[f[i], f[i + 1], f[i + 2]] \ - for i in range(0, len(f), 3)] - + # MESH CREATION # Depending on version, geometry.id will be either int or str - me = bpy.data.meshes.new('mesh-%r' % ob.geometry.id) - me.from_pydata(verts, [], faces) - me.validate() - - def add_material(mname, props): - if mname in bpy.data.materials: - mat = bpy.data.materials[mname] - mat.use_fake_user = True - else: - mat = bpy.data.materials.new(mname) - for k,v in props.items(): - setattr(mat, k, v) - me.materials.append(mat) - - needs_default = -1 in matids - if needs_default: add_material(t, {}) - - for mat in mats: - props = {} - if mat.has_diffuse: props['diffuse_color'] = mat.diffuse - if mat.has_specular: props['specular_color'] = mat.specular - if mat.has_transparency and mat.transparency > 0: - props['alpha'] = 1.0 - mat.transparency - props['use_transparency'] = True - if mat.has_specularity: props['specular_hardness'] = mat.specularity - add_material(mat.name, props) + mesh_name = 'mesh-%r' % ob.geometry.id + if mesh_name in bpy.data.meshes: + me = bpy.data.meshes[mesh_name] + else: + verts = [[v[i], v[i + 1], v[i + 2]] + for i in range(0, len(v), 3)] + faces = [[f[i], f[i + 1], f[i + 2]] + for i in range(0, len(f), 3)] + me = bpy.data.meshes.new(mesh_name) + me.from_pydata(verts, [], faces) + me.validate() + # MATERIAL CREATION + def add_material(mname, props): + if mname in bpy.data.materials: + mat = bpy.data.materials[mname] + mat.use_fake_user = True + else: + mat = bpy.data.materials.new(mname) + for k, v in props.items(): + if k == 'transparency': + mat.blend_method = 'HASHED' + mat.use_screen_refraction = True + mat.refraction_depth = 0.1 + mat.use_nodes = True + mat.node_tree.nodes["Principled BSDF"].inputs[15].default_value = v + else: + setattr(mat, k, v) + me.materials.append(mat) + + needs_default = -1 in matids + if needs_default: + add_material(t, {}) + + for mat in mats: + props = {} + if mat.has_diffuse: + props['diffuse_color'] = mat.diffuse + if mat.has_specular: + props['specular_color'] = mat.specular + if mat.has_transparency and mat.transparency > 0: + props['transparency'] = mat.transparency + if mat.has_specularity: + props['specular_intensity'] = mat.specularity + add_material(mat.name, props) + + faces = me.polygons if hasattr(me, 'polygons') else me.faces + if len(faces) == len(matids): + for face, matid in zip(faces, matids): + face.material_index = matid + (1 if needs_default else 0) + + # OBJECT CREATION bob = bpy.data.objects.new(nm, me) mat = mathutils.Matrix(([m[0], m[1], m[2], 0], - [m[3], m[4], m[5], 0], - [m[6], m[7], m[8], 0], - [m[9], m[10], m[11], 1])) - if transpose_matrices: mat.transpose() - + [m[3], m[4], m[5], 0], + [m[6], m[7], m[8], 0], + [m[9], m[10], m[11], 1])) + if transpose_matrices: + mat.transpose() + if process_relations: id_to_matrix[ob.id] = mat else: bob.matrix_world = mat - bpy.context.scene.objects.link(bob) + collection.objects.link(bob) - bpy.context.scene.objects.active = bob + bpy.context.view_layer.objects.active = bob bpy.ops.object.mode_set(mode='EDIT') bpy.ops.mesh.normals_make_consistent() bpy.ops.object.mode_set(mode='OBJECT') @@ -143,23 +173,19 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): if ob.type == 'IfcSpace' or ob.type == 'IfcOpeningElement': if not (ob.type == 'IfcOpeningElement' and blender_booleans): - bob.hide = bob.hide_render = True - bob.draw_type = 'WIRE' - - if ob.id not in id_to_object: id_to_object[ob.id] = [] + bob.hide_viewport = bob.hide_render = True + bob.display_type = 'WIRE' + + if ob.id not in id_to_object: + id_to_object[ob.id] = [] id_to_object[ob.id].append(bob) if ob.parent_id > 0: id_to_parent[ob.id] = ob.parent_id - + if blender_booleans and ob.type == 'IfcOpeningElement': openings.append(ob.id) - - faces = me.polygons if hasattr(me, 'polygons') else me.faces - if len(faces) == len(matids): - for face, matid in zip(faces, matids): - face.material_index = matid + (1 if needs_default else 0) - + progress = iterator.progress() // 2 if progress > old_progress: print("\r[" + "#" * progress + " " * (50 - progress) + "]", end="") @@ -170,13 +196,13 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): print("\rDone creating geometry" + " " * 30) id_to_parent_temp = dict(id_to_parent) - + if process_relations: print("Processing relations...") while len(id_to_parent_temp) and process_relations: id, parent_id = id_to_parent_temp.popitem() - + if parent_id in id_to_object: bob = id_to_object[parent_id][0] else: @@ -188,16 +214,17 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): nm = parent_ob.name if len(parent_ob.name) and use_names \ else parent_ob.guid bob = bpy.data.objects.new(nm, None) - + mat = mathutils.Matrix(( [m[0], m[1], m[2], 0], [m[3], m[4], m[5], 0], [m[6], m[7], m[8], 0], [m[9], m[10], m[11], 1])) - if transpose_matrices: mat.transpose() + if transpose_matrices: + mat.transpose() id_to_matrix[parent_ob.id] = mat - - bpy.context.scene.objects.link(bob) + + rel_collection.objects.link(bob) bob.ifc_id = parent_ob.id bob.ifc_name, bob.ifc_type, bob.ifc_guid = \ @@ -220,13 +247,13 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): parent_matrix = id_to_matrix.get(parent_id, None) for ob in id_to_object[id]: if parent_matrix: - ob.matrix_local = parent_matrix.inverted() * matrix + ob.matrix_local = parent_matrix.inverted() @ matrix else: ob.matrix_world = matrix - + if process_relations: print("Done processing relations") - + for opening_id in openings: parent_id = id_to_parent[opening_id] if parent_id in id_to_object: @@ -235,8 +262,8 @@ def import_ifc(filename, use_names, process_relations, blender_booleans): mod = parent_ob.modifiers.new("opening", "BOOLEAN") mod.operation = "DIFFERENCE" mod.object = opening_ob - - txt = bpy.data.texts.new("%s.log"%bpy.path.basename(filename)) + + txt = bpy.data.texts.new(f"{bpy.path.basename(filename)}.log") txt.from_string(iterator.getLog()) return True @@ -247,42 +274,51 @@ class ImportIFC(bpy.types.Operator, ImportHelper): bl_label = "Import .ifc file" filename_ext = ".ifc" - filter_glob = StringProperty(default="*.ifc", options={'HIDDEN'}) + filter_glob: StringProperty(default="*.ifc", options={'HIDDEN'}) - use_names = BoolProperty(name="Use entity names", - description="Use entity names rather than GlobalIds for objects", - default=True) - process_relations = BoolProperty(name="Process relations", - description="Convert containment and aggregation" \ - " relations to parenting" \ - " (warning: may be slow on large files)", - default=False) - blender_booleans = BoolProperty(name="Use Blender booleans", - description="Use Blender boolean modifiers for opening" \ - " elements", - default=False) + use_names: BoolProperty(name="Use entity names", + description="Use entity names rather than " + "GlobalIds for objects", + default=True) + process_relations: BoolProperty(name="Process relations", + description="Convert containment and " + "aggregation relations to parenting" + " (warning: may be slow on large files)", + default=False) + blender_booleans: BoolProperty(name="Use Blender booleans", + description="Use Blender boolean modifiers " + "for opening elements", + default=False) def execute(self, context): - if not import_ifc(self.filepath, self.use_names, self.process_relations, self.blender_booleans): + if not import_ifc(self.filepath, self.use_names, + self.process_relations, self.blender_booleans): self.report({'ERROR'}, - 'Unable to parse .ifc file or no geometrical entities found' - ) + 'Unable to parse .ifc file or no geometrical entities found' + ) return {'FINISHED'} def menu_func_import(self, context): self.layout.operator(ImportIFC.bl_idname, - text="Industry Foundation Classes (.ifc)") + text="Industry Foundation Classes (.ifc)") + + +classes = ( + ImportIFC, +) def register(): - bpy.utils.register_module(__name__) - bpy.types.INFO_MT_file_import.append(menu_func_import) + for cls in classes: + bpy.utils.register_class(cls) + bpy.types.TOPBAR_MT_file_import.append(menu_func_import) def unregister(): - bpy.utils.unregister_module(__name__) - bpy.types.INFO_MT_file_import.remove(menu_func_import) + for cls in reversed(classes): + bpy.utils.unregister_class(cls) + bpy.types.TOPBAR_MT_file_import.remove(menu_func_import) if __name__ == "__main__": From 3fdd92dc841d71e89d74a8a45d0fcca95972f28e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Huczy=C5=84ski?= Date: Wed, 6 Feb 2019 11:45:22 +0000 Subject: [PATCH 14/52] Create intersection.py --- .../io_import_scene_ifc/intersection.py | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/ifcblender/io_import_scene_ifc/intersection.py diff --git a/src/ifcblender/io_import_scene_ifc/intersection.py b/src/ifcblender/io_import_scene_ifc/intersection.py new file mode 100644 index 0000000000..31195be334 --- /dev/null +++ b/src/ifcblender/io_import_scene_ifc/intersection.py @@ -0,0 +1,103 @@ +import bpy +import bmesh + +def bmesh_copy_from_object(obj, transform=True, triangulate=True, apply_modifiers=False): + """ + Returns a transformed, triangulated copy of the mesh + """ + + assert(obj.type == 'MESH') + + if apply_modifiers and obj.modifiers: + me = obj.to_mesh(bpy.context.scene, True, 'PREVIEW', calc_tessface=False) + bm = bmesh.new() + bm.from_mesh(me) + bpy.data.meshes.remove(me) + else: + me = obj.data + if obj.mode == 'EDIT': + bm_orig = bmesh.from_edit_mesh(me) + bm = bm_orig.copy() + else: + bm = bmesh.new() + bm.from_mesh(me) + + # Remove custom data layers to save memory + for elem in (bm.faces, bm.edges, bm.verts, bm.loops): + for layers_name in dir(elem.layers): + if not layers_name.startswith("_"): + layers = getattr(elem.layers, layers_name) + for layer_name, layer in layers.items(): + layers.remove(layer) + + if transform: + bm.transform(obj.matrix_world) + + if triangulate: + bmesh.ops.triangulate(bm, faces=bm.faces) + + return bm + +def bmesh_check_intersect_objects(obj, obj2): + """ + Check if any faces intersect with the other object + + returns a boolean + """ + assert(obj != obj2) + + # Triangulate + bm = bmesh_copy_from_object(obj, transform=True, triangulate=True) + bm2 = bmesh_copy_from_object(obj2, transform=True, triangulate=True) + + # If bm has more edges, use bm2 instead for looping over its edges + # (so we cast less rays from the simpler object to the more complex object) + if len(bm.edges) > len(bm2.edges): + bm2, bm = bm, bm2 + + # Create a real mesh (lame!) + scene = bpy.context.scene + me_tmp = bpy.data.meshes.new(name="~temp~") + bm2.to_mesh(me_tmp) + bm2.free() + obj_tmp = bpy.data.objects.new(name=me_tmp.name, object_data=me_tmp) + scene.objects.link(obj_tmp) + scene.update() + ray_cast = obj_tmp.ray_cast + + intersect = False + + EPS_NORMAL = 0.000001 + EPS_CENTER = 0.01 # should always be bigger + + #for ed in me_tmp.edges: + for ed in bm.edges: + v1, v2 = ed.verts + + # setup the edge with an offset + co_1 = v1.co.copy() + co_2 = v2.co.copy() + co_mid = (co_1 + co_2) * 0.5 + no_mid = (v1.normal + v2.normal).normalized() * EPS_NORMAL + co_1 = co_1.lerp(co_mid, EPS_CENTER) + no_mid + co_2 = co_2.lerp(co_mid, EPS_CENTER) + no_mid + + co, no, index = ray_cast(co_1, co_2) + if index != -1: + intersect = True + break + + scene.objects.unlink(obj_tmp) + bpy.data.objects.remove(obj_tmp) + bpy.data.meshes.remove(me_tmp) + + scene.update() + + return intersect + + +obj = bpy.context.object +obj2 = (ob for ob in bpy.context.selected_objects if ob != obj).__next__() +intersect = bmesh_check_intersect_objects(obj, obj2) + +print("There are%s intersections." % ("" if intersect else " NO")) From 9b0be0fb4ef895969d0c158526a17f62d1e46e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Huczy=C5=84ski?= Date: Wed, 6 Feb 2019 14:08:13 +0000 Subject: [PATCH 15/52] Delete intersection.py --- .../io_import_scene_ifc/intersection.py | 103 ------------------ 1 file changed, 103 deletions(-) delete mode 100644 src/ifcblender/io_import_scene_ifc/intersection.py diff --git a/src/ifcblender/io_import_scene_ifc/intersection.py b/src/ifcblender/io_import_scene_ifc/intersection.py deleted file mode 100644 index 31195be334..0000000000 --- a/src/ifcblender/io_import_scene_ifc/intersection.py +++ /dev/null @@ -1,103 +0,0 @@ -import bpy -import bmesh - -def bmesh_copy_from_object(obj, transform=True, triangulate=True, apply_modifiers=False): - """ - Returns a transformed, triangulated copy of the mesh - """ - - assert(obj.type == 'MESH') - - if apply_modifiers and obj.modifiers: - me = obj.to_mesh(bpy.context.scene, True, 'PREVIEW', calc_tessface=False) - bm = bmesh.new() - bm.from_mesh(me) - bpy.data.meshes.remove(me) - else: - me = obj.data - if obj.mode == 'EDIT': - bm_orig = bmesh.from_edit_mesh(me) - bm = bm_orig.copy() - else: - bm = bmesh.new() - bm.from_mesh(me) - - # Remove custom data layers to save memory - for elem in (bm.faces, bm.edges, bm.verts, bm.loops): - for layers_name in dir(elem.layers): - if not layers_name.startswith("_"): - layers = getattr(elem.layers, layers_name) - for layer_name, layer in layers.items(): - layers.remove(layer) - - if transform: - bm.transform(obj.matrix_world) - - if triangulate: - bmesh.ops.triangulate(bm, faces=bm.faces) - - return bm - -def bmesh_check_intersect_objects(obj, obj2): - """ - Check if any faces intersect with the other object - - returns a boolean - """ - assert(obj != obj2) - - # Triangulate - bm = bmesh_copy_from_object(obj, transform=True, triangulate=True) - bm2 = bmesh_copy_from_object(obj2, transform=True, triangulate=True) - - # If bm has more edges, use bm2 instead for looping over its edges - # (so we cast less rays from the simpler object to the more complex object) - if len(bm.edges) > len(bm2.edges): - bm2, bm = bm, bm2 - - # Create a real mesh (lame!) - scene = bpy.context.scene - me_tmp = bpy.data.meshes.new(name="~temp~") - bm2.to_mesh(me_tmp) - bm2.free() - obj_tmp = bpy.data.objects.new(name=me_tmp.name, object_data=me_tmp) - scene.objects.link(obj_tmp) - scene.update() - ray_cast = obj_tmp.ray_cast - - intersect = False - - EPS_NORMAL = 0.000001 - EPS_CENTER = 0.01 # should always be bigger - - #for ed in me_tmp.edges: - for ed in bm.edges: - v1, v2 = ed.verts - - # setup the edge with an offset - co_1 = v1.co.copy() - co_2 = v2.co.copy() - co_mid = (co_1 + co_2) * 0.5 - no_mid = (v1.normal + v2.normal).normalized() * EPS_NORMAL - co_1 = co_1.lerp(co_mid, EPS_CENTER) + no_mid - co_2 = co_2.lerp(co_mid, EPS_CENTER) + no_mid - - co, no, index = ray_cast(co_1, co_2) - if index != -1: - intersect = True - break - - scene.objects.unlink(obj_tmp) - bpy.data.objects.remove(obj_tmp) - bpy.data.meshes.remove(me_tmp) - - scene.update() - - return intersect - - -obj = bpy.context.object -obj2 = (ob for ob in bpy.context.selected_objects if ob != obj).__next__() -intersect = bmesh_check_intersect_objects(obj, obj2) - -print("There are%s intersections." % ("" if intersect else " NO")) From 7f9d4181128eabb862cebb446fd9636e86d17da0 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 6 Feb 2019 16:24:17 +0100 Subject: [PATCH 16/52] Add LARGEST_FACE_AREA to geom server --- src/ifcgeomserver/IfcGeomServer.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ifcgeomserver/IfcGeomServer.cpp b/src/ifcgeomserver/IfcGeomServer.cpp index ed340a7a48..1664de3311 100644 --- a/src/ifcgeomserver/IfcGeomServer.cpp +++ b/src/ifcgeomserver/IfcGeomServer.cpp @@ -401,6 +401,7 @@ static const std::string SURFACE_AREA_ALONG_X = "SURFACE_AREA_ALONG_X"; static const std::string SURFACE_AREA_ALONG_Y = "SURFACE_AREA_ALONG_Y"; static const std::string SURFACE_AREA_ALONG_Z = "SURFACE_AREA_ALONG_Z"; static const std::string WALKABLE_SURFACE_AREA = "WALKABLE_SURFACE_AREA"; +static const std::string LARGEST_FACE_AREA = "LARGEST_FACE_AREA"; class QuantityWriter_v0 : public EntityExtension { private: @@ -424,7 +425,7 @@ public: QuantityWriter_v1(const IfcGeom::BRepElement* elem) : elem_(elem) { - double a, b, c; + double a, b, c, largest_face_area = 0.; if (elem_->geometry().calculate_surface_area(a)) { put_json(TOTAL_SURFACE_AREA, a); @@ -439,6 +440,20 @@ public: put_json(SURFACE_AREA_ALONG_Y, b); put_json(SURFACE_AREA_ALONG_Z, c); } + + for (auto& part : elem->geometry()) { + TopExp_Explorer exp(part.Shape(), TopAbs_FACE); + while (exp.More()) { + GProp_GProps prop; + BRepGProp::SurfaceProperties(exp.Current(), prop); + const double area = prop.Mass(); + if (area > largest_face_area) { + largest_face_area = area; + } + } + } + + put_json(LARGEST_FACE_AREA, largest_face_area); } }; From a4c2aa8f4222e1072f66fdf71bb4ac3510c30899 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 8 Feb 2019 15:18:55 +0100 Subject: [PATCH 17/52] IfcConvert Windows unicode support (#258) --- src/ifcconvert/ColladaSerializer.cpp | 2 + src/ifcconvert/ColladaSerializer.h | 2 +- src/ifcconvert/IfcConvert.cpp | 399 ++++++++++-------- src/ifcconvert/OpenCascadeBasedSerializer.cpp | 10 +- src/ifcconvert/SvgSerializer.h | 4 +- src/ifcconvert/WavefrontObjSerializer.cpp | 13 + src/ifcconvert/WavefrontObjSerializer.h | 12 +- src/ifcconvert/XmlSerializer.cpp | 12 +- src/ifcgeom/IfcGeomRenderStyles.cpp | 1 + src/ifcparse/Argument.h | 4 - src/ifcparse/IfcLogger.cpp | 113 +++-- src/ifcparse/IfcLogger.h | 15 + src/ifcparse/IfcParse.cpp | 11 +- src/ifcparse/IfcUtil.cpp | 84 ++++ src/ifcparse/utils.h | 59 +++ 15 files changed, 506 insertions(+), 235 deletions(-) create mode 100644 src/ifcparse/utils.h diff --git a/src/ifcconvert/ColladaSerializer.cpp b/src/ifcconvert/ColladaSerializer.cpp index e0c3eb169c..8d5ed42ab1 100644 --- a/src/ifcconvert/ColladaSerializer.cpp +++ b/src/ifcconvert/ColladaSerializer.cpp @@ -32,6 +32,8 @@ #include #include +#include "../ifcparse/utils.h" + using namespace IfcSchema; static std::string& collada_id(std::string& s) diff --git a/src/ifcconvert/ColladaSerializer.h b/src/ifcconvert/ColladaSerializer.h index 8c435f81a0..043ea3584a 100644 --- a/src/ifcconvert/ColladaSerializer.h +++ b/src/ifcconvert/ColladaSerializer.h @@ -198,7 +198,7 @@ private: ColladaExporter(const std::string& scene_name, const std::string& fn, ColladaSerializer *_serializer, bool double_precision) : filename(fn) - , stream(filename, double_precision) + , stream(COLLADASW::NativeString(filename.c_str(), COLLADASW::NativeString::ENCODING_UTF8), double_precision) , scene(scene_name, stream, _serializer) , materials(stream, _serializer) , geometries(stream, _serializer) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index 7847f139b8..db984857eb 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -36,6 +36,8 @@ #include "../ifcgeom/IfcGeomIterator.h" #include "../ifcgeom/IfcGeomRenderStyles.h" +#include "../ifcparse/utils.h" + #include #include @@ -51,6 +53,23 @@ #include #endif +#ifdef _MSC_VER +#include +#include +// C++11 header: +#include +#endif + +#if defined(_MSC_VER) && defined(_UNICODE) +typedef std::wstring path_t; +static std::wostream& cout_ = std::wcout; +static std::wostream& cerr_ = std::wcerr; +#else +typedef std::string path_t; +static std::ostream& cout_ = std::cout; +static std::ostream& cerr_ = std::cerr; +#endif + const std::string DEFAULT_EXTENSION = "obj"; const std::string TEMP_FILE_EXTENSION = ".tmp"; @@ -58,12 +77,12 @@ namespace po = boost::program_options; void print_version() { - std::cout << "IfcOpenShell " << IfcSchema::Identifier << " IfcConvert " << IFCOPENSHELL_VERSION << " (OCC " << OCC_VERSION_STRING_EXT << ")\n"; + cout_ << "IfcOpenShell " << IfcSchema::Identifier << " IfcConvert " << IFCOPENSHELL_VERSION << " (OCC " << OCC_VERSION_STRING_EXT << ")\n"; } void print_usage(bool suggest_help = true) { - std::cout << "Usage: IfcConvert [options] []\n" + cout_ << "Usage: IfcConvert [options] []\n" << "\n" << "Converts the geometry in an IFC file into one of the following formats:\n" << " .obj WaveFront OBJ (a .mtl file is also created)\n" @@ -75,46 +94,43 @@ void print_usage(bool suggest_help = true) << " .xml XML Property definitions and decomposition tree\n" << " .svg SVG Scalable Vector Graphics (2D floor plan)\n" << "\n" - << "If no output filename given, ." + DEFAULT_EXTENSION + " will be used as the output file.\n"; + << "If no output filename given, ." << IfcUtil::path::from_utf8(DEFAULT_EXTENSION) << " will be used as the output file.\n"; if (suggest_help) { - std::cout << "\nRun 'IfcConvert --help' for more information."; + cout_ << "\nRun 'IfcConvert --help' for more information."; } - std::cout << std::endl; + cout_ << std::endl; } /// @todo Add help for single option void print_options(const po::options_description& options) { - std::cout << "\n" << options; - std::cout << std::endl; +#if defined(_MSC_VER) && defined(_UNICODE) + // See issue https://svn.boost.org/trac10/ticket/10952 + std::ostringstream temp; + temp << options; + cout_ << "\n" << temp.str().c_str(); +#else + cout_ << "\n" << options; +#endif + cout_ << std::endl; } -std::string change_extension(const std::string& fn, const std::string& ext) { - std::string::size_type dot = fn.find_last_of('.'); - if (dot != std::string::npos) { - return fn.substr(0,dot+1) + ext; +template +T change_extension(const T& fn, const T& ext) { + typename T::size_type dot = fn.find_last_of('.'); + if (dot != T::npos) { + return fn.substr(0, dot) + ext; } else { - return fn + "." + ext; + return fn + ext; } } -bool file_exists(const std::string& filename) -{ - /// @todo Windows Unicode support - std::ifstream file(filename.c_str()); +bool file_exists(const std::string& filename) { + std::ifstream file(IfcUtil::path::from_utf8(filename).c_str()); return file.good(); } -bool rename_file(const std::string& old_filename, const std::string& new_filename) -{ - // Whether or not rename() replaces an existing file is implementation-specific, - // so remove() possible existing file always. - /// @todo Windows Unicode support - std::remove(new_filename.c_str()); - return std::rename(old_filename.c_str(), new_filename.c_str()) == 0; -} - -static std::stringstream log_stream; +static std::basic_stringstream log_stream; void write_log(bool); std::string format_duration(time_t start, time_t end); @@ -153,9 +169,28 @@ std::vector setup_filters(const std::vector&, co bool init_input_file(const std::string& filename, IfcParse::IfcFile& ifc_file, bool no_progress, bool mmap); -int main(int argc, char** argv) -{ +#if defined(_MSC_VER) && defined(_UNICODE) +int wmain(int argc, wchar_t** argv) { + typedef po::wcommand_line_parser command_line_parser; + typedef wchar_t char_t; + + _setmode(_fileno(stdout), _O_U16TEXT); + _setmode(_fileno(stderr), _O_U16TEXT); +#else +int main(int argc, char** argv) { + typedef po::command_line_parser command_line_parser; + typedef char char_t; +#endif + + double deflection_tolerance; + inclusion_filter include_filter; + inclusion_traverse_filter include_traverse_filter; + exclusion_filter exclude_filter; + exclusion_traverse_filter exclude_traverse_filter; + path_t filter_filename; + path_t default_material_filename; std::string log_format; + po::options_description generic_options("Command line options"); generic_options.add_options() ("help,h", "display usage information") @@ -172,17 +207,8 @@ int main(int argc, char** argv) #ifdef USE_MMAP ("mmap", "use memory-mapped file for input") #endif - ("input-file", po::value(), "input IFC file") - ("output-file", po::value(), "output geometry file"); - - - double deflection_tolerance; - inclusion_filter include_filter; - inclusion_traverse_filter include_traverse_filter; - exclusion_filter exclude_filter; - exclusion_traverse_filter exclude_traverse_filter; - std::string filter_filename; - std::string default_material_filename; + ("input-file", new po::typed_value(0), "input IFC file") + ("output-file", new po::typed_value(0), "output geometry file"); po::options_description geom_options("Geometry options"); geom_options.add_options() @@ -259,12 +285,12 @@ int main(int argc, char** argv) ("generate-uvs", "Generates UVs (texture coordinates) by using simple box projection. Requires normals. " "Not guaranteed to work properly if used with --weld-vertices.") - ("filter-file", po::value(&filter_filename), + ("filter-file", new po::typed_value(&filter_filename), "Specifies a filter file that describes the used filtering criteria. Supported formats " "are '--include=arg GlobalId ...' and 'include arg GlobalId ...'. Spaces and tabs can be used as delimiters." "Multiple filters of same type with different values can be inserted on their own lines. " "See --include, --include+, --exclude, and --exclude+ for more details.") - ("default-material-file", po::value(&default_material_filename), + ("default-material-file", new po::typed_value(&default_material_filename), "Specifies a material file that describes the material object types will have" "if an object does not have any specified material in the IFC file."); @@ -327,21 +353,21 @@ int main(int argc, char** argv) po::variables_map vmap; try { - po::store(po::command_line_parser(argc, argv). + po::store(command_line_parser(argc, argv). options(cmdline_options).positional(positional_options).run(), vmap); } catch (const po::unknown_option& e) { - std::cerr << "[Error] Unknown option '" << e.get_option_name() << "'\n\n"; + cerr_ << "[Error] Unknown option '" << e.get_option_name().c_str() << "'\n\n"; print_usage(); return EXIT_FAILURE; } catch (const po::error_with_option_name& e) { - std::cerr << "[Error] Invalid usage of '" << e.get_option_name() << "': " << e.what() << "\n\n"; + cerr_ << "[Error] Invalid usage of '" << e.get_option_name().c_str() << "': " << e.what() << "\n\n"; return EXIT_FAILURE; } catch (const std::exception& e) { - std::cerr << "[Error] " << e.what() << "\n\n"; + cerr_ << "[Error] " << e.what() << "\n\n"; print_usage(); return EXIT_FAILURE; } catch (...) { - std::cerr << "[Error] Unknown error parsing command line options\n\n"; + cerr_ << "[Error] Unknown error parsing command line options\n\n"; print_usage(); return EXIT_FAILURE; } @@ -376,11 +402,11 @@ int main(int argc, char** argv) const bool building_local_placement = vmap.count("building-local-placement") != 0; const bool generate_uvs = vmap.count("generate-uvs") != 0; - if (!quiet || vmap.count("version")) { + if (!quiet || vmap.count("version")) { print_version(); } - if (vmap.count("version")) { + if (vmap.count("version")) { return EXIT_SUCCESS; } else if (vmap.count("help")) { print_usage(false); @@ -391,70 +417,7 @@ int main(int argc, char** argv) print_usage(); return EXIT_FAILURE; } - -#ifdef HAVE_ICU - if (!unicode_mode.empty()) { - if (unicode_mode == "utf8") { - IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::UTF8; - } else if (unicode_mode == "escape") { - IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::JSON; - } else { - std::cerr << "[Error] Invalid value for --unicode" << std::endl; - print_options(serializer_options); - return 1; - } - } -#endif - - boost::optional bounding_width; - boost::optional bounding_height; - if (vmap.count("bounds") == 1) { - int w, h; - if (sscanf(bounds.c_str(), "%ux%u", &w, &h) == 2 && w > 0 && h > 0) { - bounding_width = w; - bounding_height = h; - } else { - std::cerr << "[Error] Invalid use of --bounds" << std::endl; - print_options(serializer_options); - return EXIT_FAILURE; - } - } - - const std::string input_filename = vmap["input-file"].as(); - if (!file_exists(input_filename)) { - std::cerr << "[Error] Input file '" << input_filename << "' does not exist" << std::endl; - return EXIT_FAILURE; - } - - // If no output filename is specified a Wavefront OBJ file will be output - // to maintain backwards compatibility with the obsolete IfcObj executable. - const std::string output_filename = vmap.count("output-file") == 1 - ? vmap["output-file"].as() - : change_extension(input_filename, DEFAULT_EXTENSION); - - if (output_filename.size() < 5) { - std::cerr << "[Error] Invalid or unsupported output file '" << output_filename << "' given" << std::endl; - print_usage(); - return EXIT_FAILURE; - } - - if (file_exists(output_filename) && !vmap.count("yes")) { - std::string answer; - std::cout << "A file '" << output_filename << "' already exists. Overwrite the existing file?" << std::endl; - std::cin >> answer; - if (!boost::iequals(answer, "yes") && !boost::iequals(answer, "y")) { - return EXIT_SUCCESS; - } - } - - std::string output_temp_filename = output_filename + TEMP_FILE_EXTENSION; - - std::string output_extension = output_filename.substr(output_filename.size()-4); - boost::to_lower(output_extension); - - Logger::SetOutput(&std::cout, &log_stream); - Logger::Verbosity(verbose ? Logger::LOG_NOTICE : Logger::LOG_ERROR); - + if (vmap.count("log-format") == 1) { boost::to_lower(log_format); if (log_format == "plain") { @@ -467,23 +430,114 @@ int main(int argc, char** argv) return EXIT_FAILURE; } } + + if (!filter_filename.empty()) { + size_t num_filters = read_filters_from_file(IfcUtil::path::to_utf8(filter_filename), include_filter, include_traverse_filter, exclude_filter, exclude_traverse_filter); + if (num_filters) { + Logger::Notice(boost::lexical_cast(num_filters) + " filters read from specifified file."); + } else { + std::cerr << "[Error] No filters read from specifified file.\n"; + return EXIT_FAILURE; + } + } + +#ifdef HAVE_ICU + if (!unicode_mode.empty()) { + if (unicode_mode == "utf8") { + IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::UTF8; + } else if (unicode_mode == "escape") { + IfcParse::IfcCharacterDecoder::mode = IfcParse::IfcCharacterDecoder::JSON; + } else { + cerr_ << "[Error] Invalid value for --unicode" << std::endl; + print_options(serializer_options); + return 1; + } + } +#endif + + if (!default_material_filename.empty()) { + try { + IfcGeom::set_default_style_file(IfcUtil::path::to_utf8(default_material_filename)); + } catch (const std::exception& e) { + std::cerr << "[Error] Could not read default material file:" << std::endl; + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; + } + } + + boost::optional bounding_width; + boost::optional bounding_height; + if (vmap.count("bounds") == 1) { + int w, h; + if (sscanf(bounds.c_str(), "%ux%u", &w, &h) == 2 && w > 0 && h > 0) { + bounding_width = w; + bounding_height = h; + } else { + cerr_ << "[Error] Invalid use of --bounds" << std::endl; + print_options(serializer_options); + return EXIT_FAILURE; + } + } + + const path_t input_filename = vmap["input-file"].as(); + if (!file_exists(IfcUtil::path::to_utf8(input_filename))) { + cerr_ << "[Error] Input file '" << input_filename << "' does not exist" << std::endl; + return EXIT_FAILURE; + } + + // If no output filename is specified a Wavefront OBJ file will be output + // to maintain backwards compatibility with the obsolete IfcObj executable. + const path_t output_filename = vmap.count("output-file") == 1 + ? vmap["output-file"].as() + : change_extension(input_filename, IfcUtil::path::from_utf8(DEFAULT_EXTENSION)); + + if (output_filename.size() < 5) { + cerr_ << "[Error] Invalid or unsupported output file '" << output_filename << "' given" << std::endl; + print_usage(); + return EXIT_FAILURE; + } + + if (file_exists(IfcUtil::path::to_utf8(output_filename)) && !vmap.count("yes")) { + std::string answer; + cout_ << "A file '" << output_filename << "' already exists. Overwrite the existing file?" << std::endl; + std::cin >> answer; + if (!boost::iequals(answer, "yes") && !boost::iequals(answer, "y")) { + return EXIT_SUCCESS; + } + } + + Logger::SetOutput(&cout_, &log_stream); + Logger::Verbosity(verbose ? Logger::LOG_NOTICE : Logger::LOG_ERROR); + + path_t output_temp_filename = output_filename + IfcUtil::path::from_utf8(TEMP_FILE_EXTENSION); + + path_t output_extension = output_filename.substr(output_filename.size()-4); + boost::to_lower(output_extension); IfcParse::IfcFile ifc_file; - if (output_extension == ".xml") { + const path_t OBJ = IfcUtil::path::from_utf8(".obj"), + MTL = IfcUtil::path::from_utf8(".mtl"), + DAE = IfcUtil::path::from_utf8(".dae"), + STP = IfcUtil::path::from_utf8(".stp"), + IGS = IfcUtil::path::from_utf8(".igs"), + SVG = IfcUtil::path::from_utf8(".svg"), + XML = IfcUtil::path::from_utf8(".xml"); + + if (output_extension == XML) { int exit_code = EXIT_FAILURE; try { - if (init_input_file(input_filename, ifc_file, no_progress || quiet, mmap)) { + if (init_input_file(IfcUtil::path::to_utf8(input_filename), ifc_file, no_progress || quiet, mmap)) { time_t start, end; time(&start); - XmlSerializer s(output_temp_filename); + XmlSerializer s(IfcUtil::path::to_utf8(output_temp_filename)); s.setFile(&ifc_file); Logger::Status("Writing XML output..."); s.finalize(); time(&end); Logger::Status("Done! Conversion took " + format_duration(start, end)); - rename_file(output_temp_filename, output_filename); + IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename)); exit_code = EXIT_SUCCESS; } } catch (const std::exception& e) { @@ -493,26 +547,6 @@ int main(int argc, char** argv) return exit_code; } - if (!filter_filename.empty()) { - size_t num_filters = read_filters_from_file(filter_filename, include_filter, include_traverse_filter, exclude_filter, exclude_traverse_filter); - if (num_filters) { - Logger::Notice(boost::lexical_cast(num_filters) + " filters read from '" + filter_filename + "'."); - } else { - std::cerr << "[Error] No filters read from '" + filter_filename + "'.\n"; - return EXIT_FAILURE; - } - } - - if (!default_material_filename.empty()) { - try { - IfcGeom::set_default_style_file(default_material_filename); - } catch (const std::exception& e) { - std::cerr << "[Error] Could not read default material file " << default_material_filename << ":" << std::endl; - std::cerr << e.what() << std::endl; - return EXIT_FAILURE; - } - } - /// @todo Clean up this filter code further. std::vector used_filters; if (include_filter.type != geom_filter::UNUSED) { used_filters.push_back(include_filter); } @@ -520,9 +554,9 @@ int main(int argc, char** argv) if (exclude_filter.type != geom_filter::UNUSED) { used_filters.push_back(exclude_filter); } if (exclude_traverse_filter.type != geom_filter::UNUSED) { used_filters.push_back(exclude_traverse_filter); } - std::vector filter_funcs = setup_filters(used_filters, output_extension); + std::vector filter_funcs = setup_filters(used_filters, IfcUtil::path::to_utf8(output_extension)); if (filter_funcs.empty()) { - std::cerr << "[Error] Failed to set up geometry filters\n"; + cerr_ << "[Error] Failed to set up geometry filters\n"; return EXIT_FAILURE; } @@ -533,6 +567,20 @@ int main(int argc, char** argv) if (!desc_filter.values.empty()) { desc_filter.update_description(); Logger::Notice(desc_filter.description); } if (!tag_filter.values.empty()) { tag_filter.update_description(); Logger::Notice(tag_filter.description); } +#ifdef _MSC_VER + if (output_extension == DAE || output_extension == STP || output_extension == IGS) { + // These serializers do not support opening unicode paths on Windows. Therefore + // a random temp file is generated using only ASCII characters instead. + std::random_device rng; + std::uniform_int_distribution index_dist(L'A', L'Z'); + output_temp_filename = L".ifcopenshell."; + for (int i = 0; i < 8; ++i) { + output_temp_filename.push_back(static_cast(index_dist(rng))); + } + output_temp_filename += L".tmp"; + } +#endif + SerializerSettings settings; /// @todo Make APPLY_DEFAULT_MATERIALS configurable? Quickly tested setting this to false and using obj exporter caused the program to crash and burn. settings.set(IfcGeom::IteratorSettings::APPLY_DEFAULT_MATERIALS, true); @@ -563,26 +611,26 @@ int main(int argc, char** argv) settings.precision = precision; boost::shared_ptr serializer; /**< @todo use std::unique_ptr when possible */ - if (output_extension == ".obj") { + if (output_extension == OBJ) { // Do not use temp file for MTL as it's such a small file. - const std::string mtl_filename = change_extension(output_filename, "mtl"); + const path_t mtl_filename = change_extension(output_filename, MTL); if (!use_world_coords) { Logger::Notice("Using world coords when writing WaveFront OBJ files"); settings.set(IfcGeom::IteratorSettings::USE_WORLD_COORDS, true); } - serializer = boost::make_shared(output_temp_filename, mtl_filename, settings); + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(mtl_filename), settings); #ifdef WITH_OPENCOLLADA - } else if (output_extension == ".dae") { - serializer = boost::make_shared(output_temp_filename, settings); + } else if (output_extension == DAE) { + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); #endif - } else if (output_extension == ".stp") { - serializer = boost::make_shared(output_temp_filename, settings); - } else if (output_extension == ".igs") { + } else if (output_extension == STP) { + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); + } else if (output_extension == IGS) { IGESControl_Controller::Init(); // work around Open Cascade bug - serializer = boost::make_shared(output_temp_filename, settings); - } else if (output_extension == ".svg") { + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); + } else if (output_extension == SVG) { settings.set(IfcGeom::IteratorSettings::DISABLE_TRIANGULATION, true); - serializer = boost::make_shared(output_temp_filename, settings); + serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); if (vmap.count("section-height") != 0) { Logger::Notice("Overriding section height"); static_cast(serializer.get())->setSectionHeight(section_height); @@ -591,18 +639,18 @@ int main(int argc, char** argv) static_cast(serializer.get())->setBoundingRectangle(bounding_width.get(), bounding_height.get()); } } else { - std::cerr << "[Error] Unknown output filename extension '" + output_extension + "'\n"; + cerr_ << "[Error] Unknown output filename extension '" << output_extension << "'\n"; write_log(!quiet); print_usage(); return EXIT_FAILURE; } - if (use_element_hierarchy && output_extension != ".dae") { - std::cerr << "[Error] --use-element-hierarchy can be used only with .dae output.\n"; + if (use_element_hierarchy && output_extension != DAE) { + cerr_ << "[Error] --use-element-hierarchy can be used only with .dae output.\n"; /// @todo Lots of duplicate error-and-exit code. write_log(!quiet); print_usage(); - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); return EXIT_FAILURE; } @@ -622,7 +670,7 @@ int main(int argc, char** argv) } if (!serializer->ready()) { - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); write_log(!quiet); return EXIT_FAILURE; } @@ -630,9 +678,9 @@ int main(int argc, char** argv) time_t start,end; time(&start); - if (!init_input_file(input_filename, ifc_file, no_progress || quiet, mmap)) { + if (!init_input_file(IfcUtil::path::to_utf8(input_filename), ifc_file, no_progress || quiet, mmap)) { write_log(!quiet); - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); /**< @todo Windows Unicode support */ return EXIT_FAILURE; } @@ -641,7 +689,7 @@ int main(int argc, char** argv) /// @todo It would be nice to know and print separate error prints for a case where we found no entities /// and for a case we found no entities that satisfy our filtering criteria. Logger::Error("No geometrical entities found"); - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); write_log(!quiet); return EXIT_FAILURE; } @@ -676,8 +724,8 @@ int main(int argc, char** argv) offset[2] = -center.Z(); } else { if (sscanf(offset_str.c_str(), "%lf;%lf;%lf", &offset[0], &offset[1], &offset[2]) != 3) { - std::cerr << "[Error] Invalid use of --model-offset\n"; - std::remove(output_temp_filename.c_str()); /**< @todo Windows Unicode support */ + cerr_ << "[Error] Invalid use of --model-offset\n"; + IfcUtil::path::delete_file(IfcUtil::path::to_utf8(output_temp_filename)); print_options(serializer_options); return EXIT_FAILURE; } @@ -755,10 +803,10 @@ int main(int argc, char** argv) // Renaming might fail (e.g. maybe the existing file was open in a viewer application) // Do not remove the temp file as user can salvage the conversion result from it. - bool successful = rename_file(output_temp_filename, output_filename); + bool successful = IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename)); if (!successful) { - Logger::Error("Unable to write output file '" + output_filename + "', see '" + - output_temp_filename + "' for the conversion result."); + cerr_ << "Unable to write output file '" << output_filename << "', see '" << + output_temp_filename << "' for the conversion result."; } write_log(!quiet); @@ -793,12 +841,12 @@ std::string format_duration(time_t start, time_t end) } void write_log(bool header) { - std::string log = log_stream.str(); + path_t log = log_stream.str(); if (!log.empty()) { - if (header) { - std::cout << "\nLog:\n"; - } - std::cout << log << std::endl; + if (header) { + cout_ << "\nLog:\n"; + } + cout_ << log << std::endl; } } @@ -821,7 +869,7 @@ bool init_input_file(const std::string &filename, IfcParse::IfcFile &ifc_file, b } time(&end); - if (no_progress) { Logger::SetOutput(&std::cout, &log_stream); } + if (no_progress) { Logger::SetOutput(&cout_, &log_stream); } else { Logger::Status("Parsing input file took " + format_duration(start, end)); } return true; @@ -833,7 +881,7 @@ bool append_filter(const std::string& type, const std::vector& valu parse_filter(temp, values); // Merge values only if type and arg match. if ((filter.type != geom_filter::UNUSED && filter.type != temp.type) || (!filter.arg.empty() && filter.arg != temp.arg)) { - std::cerr << "[Error] Multiple '" << type << "' filters specified with different criteria\n"; + cerr_ << "[Error] Multiple '" << type.c_str() << "' filters specified with different criteria\n"; return false; } filter.type = temp.type; @@ -849,9 +897,10 @@ size_t read_filters_from_file( exclusion_filter& exclude_filter, exclusion_traverse_filter& exclude_traverse_filter) { - std::ifstream filter_file(filename.c_str()); + std::ifstream filter_file(IfcUtil::path::from_utf8(filename).c_str()); + if (!filter_file.is_open()) { - std::cerr << "[Error] Unable to open filter file '" + filename + "' or the file does not exist.\n"; + cerr_ << "[Error] Unable to open filter file '" << IfcUtil::path::from_utf8(filename) << "' or the file does not exist.\n"; return 0; } @@ -886,11 +935,11 @@ size_t read_filters_from_file( else if (type == "exclude") { if (append_filter("exclude", values, exclude_filter)) { ++num_filters; } } else if (type == "exclude+") { if (append_filter("exclude+", values, exclude_traverse_filter)) { ++num_filters; } } else { - std::cerr << "[Error] Invalid filtering type at line " + boost::lexical_cast(line_number) + "\n"; + cerr_ << "[Error] Invalid filtering type at line " << boost::lexical_cast(line_number) << "\n"; return 0; } } catch(...) { - std::cerr << "[Error] Unable to parse filter at line " + boost::lexical_cast(line_number) + ".\n"; + cerr_ << "[Error] Unable to parse filter at line " << boost::lexical_cast(line_number) << ".\n"; return 0; } } @@ -965,7 +1014,7 @@ std::vector setup_filters(const std::vector& fil try { entity_filter.populate(f.values); } catch (const IfcParse::IfcException& e) { - std::cerr << "[Error] " << e.what() << std::endl; + cerr_ << "[Error] " << e.what() << std::endl; return std::vector(); } } else if (f.type == geom_filter::LAYER_NAME) { @@ -1005,7 +1054,7 @@ std::vector setup_filters(const std::vector& fil } entity_filter.populate(entities); } catch (const IfcParse::IfcException& e) { - std::cerr << "[Error] " << e.what() << std::endl; + cerr_ << "[Error] " << e.what() << std::endl; return std::vector(); } } diff --git a/src/ifcconvert/OpenCascadeBasedSerializer.cpp b/src/ifcconvert/OpenCascadeBasedSerializer.cpp index cf5ae2df62..181d870467 100644 --- a/src/ifcconvert/OpenCascadeBasedSerializer.cpp +++ b/src/ifcconvert/OpenCascadeBasedSerializer.cpp @@ -17,19 +17,21 @@ * * ********************************************************************************/ +#include "OpenCascadeBasedSerializer.h" + +#include "../ifcparse/utils.h" + #include #include #include #include -#include "OpenCascadeBasedSerializer.h" - bool OpenCascadeBasedSerializer::ready() { - std::ofstream test_file(out_filename.c_str(), std::ios_base::binary); + std::ofstream test_file(IfcUtil::path::from_utf8(out_filename).c_str(), std::ios_base::binary); bool succeeded = test_file.is_open(); test_file.close(); - remove(out_filename.c_str()); + IfcUtil::path::delete_file(out_filename); return succeeded; } diff --git a/src/ifcconvert/SvgSerializer.h b/src/ifcconvert/SvgSerializer.h index 8b242aaca3..4f61f96446 100644 --- a/src/ifcconvert/SvgSerializer.h +++ b/src/ifcconvert/SvgSerializer.h @@ -25,6 +25,8 @@ #include "../ifcconvert/GeometrySerializer.h" #include "../ifcconvert/util.h" +#include "../ifcparse/utils.h" + #include #include #include @@ -46,7 +48,7 @@ protected: public: SvgSerializer(const std::string& out_filename, const SerializerSettings& settings) : GeometrySerializer(settings) - , svg_file(out_filename.c_str()) + , svg_file(IfcUtil::path::from_utf8(out_filename).c_str()) , xmin(+std::numeric_limits::infinity()) , ymin(+std::numeric_limits::infinity()) , xmax(-std::numeric_limits::infinity()) diff --git a/src/ifcconvert/WavefrontObjSerializer.cpp b/src/ifcconvert/WavefrontObjSerializer.cpp index 80f92c1574..216fd8a792 100644 --- a/src/ifcconvert/WavefrontObjSerializer.cpp +++ b/src/ifcconvert/WavefrontObjSerializer.cpp @@ -22,9 +22,22 @@ #include "../ifcgeom/IfcGeomRenderStyles.h" +#include "../ifcparse/utils.h" + #include #include +WaveFrontOBJSerializer::WaveFrontOBJSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings) + : GeometrySerializer(settings) + , mtl_filename(mtl_filename) + , obj_stream(IfcUtil::path::from_utf8(obj_filename).c_str()) + , mtl_stream(IfcUtil::path::from_utf8(mtl_filename).c_str()) + , vcount_total(1) +{ + obj_stream << std::setprecision(settings.precision); + mtl_stream << std::setprecision(settings.precision); +} + bool WaveFrontOBJSerializer::ready() { return obj_stream.is_open() && mtl_stream.is_open(); } diff --git a/src/ifcconvert/WavefrontObjSerializer.h b/src/ifcconvert/WavefrontObjSerializer.h index 2aa9708bdc..2acfa890d6 100644 --- a/src/ifcconvert/WavefrontObjSerializer.h +++ b/src/ifcconvert/WavefrontObjSerializer.h @@ -35,17 +35,7 @@ private: unsigned int vcount_total; std::set materials; public: - WaveFrontOBJSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings) - : GeometrySerializer(settings) - , mtl_filename(mtl_filename) - , obj_stream(obj_filename.c_str()) - , mtl_stream(mtl_filename.c_str()) - , vcount_total(1) - { - obj_stream << std::setprecision(settings.precision); - mtl_stream << std::setprecision(settings.precision); - } - + WaveFrontOBJSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings); virtual ~WaveFrontOBJSerializer() {} bool ready(); void writeHeader(); diff --git a/src/ifcconvert/XmlSerializer.cpp b/src/ifcconvert/XmlSerializer.cpp index 6bb3f54a54..6ed1780d19 100644 --- a/src/ifcconvert/XmlSerializer.cpp +++ b/src/ifcconvert/XmlSerializer.cpp @@ -17,8 +17,6 @@ * * ********************************************************************************/ -#include - #include #include #include @@ -26,10 +24,12 @@ #include "XmlSerializer.h" -#include - #include "../ifcparse/IfcSIPrefix.h" #include "../ifcgeom/IfcGeom.h" +#include "../ifcparse/utils.h" + +#include +#include using boost::property_tree::ptree; using namespace IfcSchema; @@ -528,5 +528,7 @@ void XmlSerializer::finalize() { #else boost::property_tree::xml_writer_settings settings('\t', 1); #endif - boost::property_tree::write_xml(xml_filename, root, std::locale(), settings); + + std::ofstream f(IfcUtil::path::from_utf8(xml_filename).c_str()); + boost::property_tree::write_xml(f, root, settings); } diff --git a/src/ifcgeom/IfcGeomRenderStyles.cpp b/src/ifcgeom/IfcGeomRenderStyles.cpp index 09c211a58b..27b5e2ce8a 100644 --- a/src/ifcgeom/IfcGeomRenderStyles.cpp +++ b/src/ifcgeom/IfcGeomRenderStyles.cpp @@ -200,6 +200,7 @@ void IfcGeom::set_default_style_file(const std::string& json_file) { if (!default_materials_initialized) InitDefaultMaterials(); default_materials.clear(); + // @todo this will probably need to be updated for UTF-8 paths on Windows pt::ptree root; pt::read_json(json_file, root); diff --git a/src/ifcparse/Argument.h b/src/ifcparse/Argument.h index ef7787ac52..bcb1227dd0 100644 --- a/src/ifcparse/Argument.h +++ b/src/ifcparse/Argument.h @@ -52,10 +52,6 @@ namespace IfcUtil { IFC_PARSE_API const char* ArgumentTypeToString(ArgumentType argument_type); IFC_PARSE_API bool valid_binary_string(const std::string& s); - /// Replaces spaces and potentially other problem causing characters with underscores. - IFC_PARSE_API void sanitate_material_name(std::string &str); - IFC_PARSE_API void escape_xml(std::string &str); - IFC_PARSE_API void unescape_xml(std::string &str); } class IFC_PARSE_API Argument { diff --git a/src/ifcparse/IfcLogger.cpp b/src/ifcparse/IfcLogger.cpp index a9b43907dd..d966edec53 100644 --- a/src/ifcparse/IfcLogger.cpp +++ b/src/ifcparse/IfcLogger.cpp @@ -30,35 +30,56 @@ #include #include -using boost::property_tree::ptree; - namespace { - static const char* severity_strings[] = {"Notice", "Warning", "Error"}; + + template + struct severity_strings { + static const std::array, 3> value; + }; - void plain_text_message(std::ostream& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { - os << "[" << severity_strings[type] << "] "; + const std::array, 3> severity_strings::value = { "Notice", "Warning", "Error" }; + const std::array, 3> severity_strings::value = { L"Notice", L"Warning", L"Error" }; + + template + void plain_text_message(T& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { + os << "[" << severity_strings::value[type] << "] "; if (current_product) { - os << "{" << (*current_product)->GlobalId() << "} "; + os << "{" << (*current_product)->GlobalId().c_str() << "} "; } - os << message << std::endl; + os << message.c_str() << std::endl; if (entity) { std::string instance_string = entity->toString(); if (instance_string.size() > 259) { instance_string = instance_string.substr(0, 256) + "..."; } - os << instance_string << std::endl; + os << instance_string.c_str() << std::endl; } } - void json_message(std::ostream& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { - ptree pt; - pt.put("level", severity_strings[type]); + template + std::basic_string string_as(const std::string& s) { + std::basic_string v; + v.assign(s.begin(), s.end()); + return v; + } + + template + void json_message(T& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { + boost::property_tree::basic_ptree, std::basic_string > pt; + + // @todo this is crazy + static const T::char_type level_string[] = { 'l', 'e', 'v', 'e', 'l', 0 }; + static const T::char_type product_string[] = { 'p', 'r', 'o', 'd', 'u', 'c', 't', 0 }; + static const T::char_type message_string[] = { 'm', 'e', 's', 's', 'a', 'g', 'e', 0 }; + static const T::char_type instance_string[] = { 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 0 }; + + pt.put(level_string, severity_strings::value[type]); if (current_product) { - pt.put("product", (**current_product).entity->toString()); + pt.put(product_string, string_as((**current_product).entity->toString())); } - pt.put("message", message); + pt.put(message_string, string_as(message)); if (entity) { - pt.put("instance", entity); + pt.put(instance_string, string_as(entity->toString())); } boost::property_tree::write_json(os, pt, false); } @@ -68,20 +89,50 @@ void Logger::SetProduct(boost::optional product) { current_product = product; } -void Logger::SetOutput(std::ostream* l1, std::ostream* l2) { +void Logger::SetOutput(std::ostream* l1, std::ostream* l2) { + wlog1 = wlog2 = 0; log1 = l1; log2 = l2; - if ( ! log2 ) { + if (!log2) { log2 = &log_stream; } } +void Logger::SetOutput(std::wostream* l1, std::wostream* l2) { + log1 = log2 = 0; + wlog1 = l1; + wlog2 = l2; + if (!wlog2) { + log2 = &log_stream; + } +} + +template +void Logger::log(T& log2, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { + log2 << "[" << severity_strings[type] << "] "; + if (current_product) { + log2 << "{" << (*current_product)->GlobalId().c_str() << "} "; + } + log2 << message.c_str() << std::endl; + if (entity) { + log2 << entity->toString().c_str() << std::endl; + } +} + void Logger::Message(Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { - if (log2 && type >= verbosity) { + if ((log2 || wlog2) && type >= verbosity) { if (format == FMT_PLAIN) { - plain_text_message(*log2, current_product, type, message, entity); + if (log2) { + plain_text_message(*log2, current_product, type, message, entity); + } else if (wlog2) { + plain_text_message(*wlog2, current_product, type, message, entity); + } } else if (format == FMT_JSON) { - json_message(*log2, current_product, type, message, entity); + if (log2) { + json_message(*log2, current_product, type, message, entity); + } else if (wlog2) { + json_message(*wlog2, current_product, type, message, entity); + } } } } @@ -90,18 +141,26 @@ void Logger::Message(Logger::Severity type, const std::exception& exception, Ifc Message(type, exception.what(), entity); } +template +void status(T& log1, const std::string& message, bool new_line) { + log1 << message.c_str(); + if (new_line) { + log1 << std::endl; + } else { + log1 << std::flush; + } +} + void Logger::Status(const std::string& message, bool new_line) { if (log1) { - (*log1) << message; - if ( new_line ) (*log1) << std::endl; - else (*log1) << std::flush; + status(*log1, message, new_line); + } else if (wlog1) { + status(*wlog1, message, new_line); } } void Logger::ProgressBar(int progress) { - if (log1) { - Status("\r[" + std::string(progress,'#') + std::string(50 - progress,' ') + "]", false); - } + Status("\r[" + std::string(progress,'#') + std::string(50 - progress,' ') + "]", false); } std::string Logger::GetLog() { @@ -116,7 +175,9 @@ Logger::Format Logger::OutputFormat() { return format; } std::ostream* Logger::log1 = 0; std::ostream* Logger::log2 = 0; +std::wostream* Logger::wlog1 = 0; +std::wostream* Logger::wlog2 = 0; std::stringstream Logger::log_stream; Logger::Severity Logger::verbosity = Logger::LOG_NOTICE; Logger::Format Logger::format = Logger::FMT_PLAIN; -boost::optional Logger::current_product; \ No newline at end of file +boost::optional Logger::current_product; diff --git a/src/ifcparse/IfcLogger.h b/src/ifcparse/IfcLogger.h index ce13ee7558..4db2618782 100644 --- a/src/ifcparse/IfcLogger.h +++ b/src/ifcparse/IfcLogger.h @@ -42,14 +42,29 @@ public: typedef enum { LOG_NOTICE, LOG_WARNING, LOG_ERROR } Severity; typedef enum { FMT_PLAIN, FMT_JSON } Format; private: + + // To both stream variants need to exist at runtime or should this be a + // template argument of Logger or controlled using preprocessor directives? static std::ostream* log1; static std::ostream* log2; + + static std::wostream* wlog1; + static std::wostream* wlog2; + static std::stringstream log_stream; + static Severity verbosity; static Format format; static boost::optional current_product; + + template + static void log(T& log2, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity); public: static void SetProduct(boost::optional product); + + /// Determines to what stream respectively progress and errors are logged + static void SetOutput(std::wostream* l1, std::wostream* l2); + /// Determines to what stream respectively progress and errors are logged static void SetOutput(std::ostream* l1, std::ostream* l2); diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 0e63c88360..ec54f1ffad 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -25,10 +25,6 @@ #include #include -#ifdef _MSC_VER -#include -#endif - #include #include @@ -39,6 +35,7 @@ #include "../ifcparse/IfcSpfStream.h" #include "../ifcparse/IfcFile.h" #include "../ifcparse/IfcSIPrefix.h" +#include "../ifcparse/utils.h" #ifdef USE_IFC4 #include "../ifcparse/Ifc4-latebound.h" @@ -122,9 +119,8 @@ IfcSpfStream::IfcSpfStream(const std::string& fn) , eof(false) { #ifdef _MSC_VER - int fn_buffer_size = MultiByteToWideChar(CP_UTF8, 0, fn.c_str(), -1, 0, 0); - wchar_t* fn_wide = new wchar_t[fn_buffer_size]; - MultiByteToWideChar(CP_UTF8, 0, fn.c_str(), -1, fn_wide, fn_buffer_size); + std::wstring fn_ws = IfcUtil::path::from_utf8(fn); + const wchar_t* fn_wide = fn_ws.c_str(); #ifdef USE_MMAP if (mmap) { @@ -136,7 +132,6 @@ IfcSpfStream::IfcSpfStream(const std::string& fn) } #endif - delete[] fn_wide; #else #ifdef USE_MMAP diff --git a/src/ifcparse/IfcUtil.cpp b/src/ifcparse/IfcUtil.cpp index fb4c48a815..c4dc183f1a 100644 --- a/src/ifcparse/IfcUtil.cpp +++ b/src/ifcparse/IfcUtil.cpp @@ -17,8 +17,43 @@ * * ********************************************************************************/ +#ifdef _MSC_VER +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef NOMINMAX +#define NOMINMAX +#endif +#ifndef NOMSG +#define NOMSG NOMSG +#endif +#ifndef NODRAWTEXT +#define NODRAWTEXT NODRAWTEXT +#endif +#ifndef NOGDI +#define NOGDI NOGDI +#endif +#ifndef NOSERVICE +#define NOSERVICE NOSERVICE +#endif +#ifndef NOKERNEL +#define NOKERNEL NOKERNEL +#endif +#ifndef NOUSER +#define NOUSER NOUSER +#endif +#ifndef NOMCX +#define NOMCX NOMCX +#endif +#ifndef NOIME +#define NOIME NOIME +#endif +#include +#endif + #include "../ifcparse/IfcBaseClass.h" #include "../ifcparse/Argument.h" +#include "../ifcparse/utils.h" #include "../ifcparse/IfcException.h" #include "../ifcparse/IfcEntityList.h" @@ -198,3 +233,52 @@ Argument* IfcUtil::IfcBaseEntity::getArgumentByName(const std::string& name) con unsigned int i = IfcSchema::Type::GetAttributeIndex(type(), name); return getArgument(i); } + +#ifdef _MSC_VER +std::string IfcUtil::path::to_utf8(const std::wstring& str) { + int buffer_size = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), -1, 0, 0, 0, 0); + char* buffer = new char[buffer_size]; + WideCharToMultiByte(CP_UTF8, 0, str.c_str(), -1, buffer, buffer_size, 0, 0); + std::string str_utf8(buffer); + delete[] buffer; + return str_utf8; +} + +std::wstring IfcUtil::path::from_utf8(const std::string& str) { + int buffer_size = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, 0, 0); + wchar_t* buffer = new wchar_t[buffer_size]; + MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, buffer, buffer_size); + std::wstring str_wide(buffer); + delete[] buffer; + return str_wide; +} + +IFC_PARSE_API bool IfcUtil::path::rename_file(const std::string& old_filename, const std::string& new_filename) { + std::wstring old_filename_w = from_utf8(old_filename); + std::wstring new_filename_w = from_utf8(new_filename); + delete_file(new_filename); + const bool success = !!MoveFileW(old_filename_w.c_str(), new_filename_w.c_str()); + return success; +} + +IFC_PARSE_API bool IfcUtil::path::delete_file(const std::string& filename) { + std::wstring filename_w = from_utf8(filename); + const bool success = !!DeleteFileW(filename_w.c_str()); + return success; +} + +#else + +IFC_PARSE_API bool IfcUtil::path::rename_file(const std::string& old_filename, const std::string& new_filename) { + // Whether or not rename() replaces an existing file is implementation-specific, + // so remove() possible existing file always. + delete_file(new_filename); + return std::rename(old_filename.c_str(), new_filename.c_str()) == 0; +} + +IFC_PARSE_API bool IfcUtil::path::delete_file(const std::string& filename) { + return std::remove(filename.c_str()); +} + +#endif + diff --git a/src/ifcparse/utils.h b/src/ifcparse/utils.h new file mode 100644 index 0000000000..ea60de4689 --- /dev/null +++ b/src/ifcparse/utils.h @@ -0,0 +1,59 @@ +/******************************************************************************** +* * +* This file is part of IfcOpenShell. * +* * +* IfcOpenShell is free software: you can redistribute it and/or modify * +* it under the terms of the Lesser GNU General Public License as published by * +* the Free Software Foundation, either version 3.0 of the License, or * +* (at your option) any later version. * +* * +* IfcOpenShell is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* Lesser GNU General Public License for more details. * +* * +* You should have received a copy of the Lesser GNU General Public License * +* along with this program. If not, see . * +* * +********************************************************************************/ + +#include "../ifcparse/ifc_parse_api.h" + +#include + +#ifndef IFCPARSE_UTILS_H +#define IFCPARSE_UTILS_H + +namespace IfcUtil { + + /// Replaces spaces and potentially other problem causing characters with underscores. + IFC_PARSE_API void sanitate_material_name(std::string &str); + + IFC_PARSE_API void escape_xml(std::string &str); + IFC_PARSE_API void unescape_xml(std::string &str); + + namespace path { + + IFC_PARSE_API bool delete_file(const std::string& filename); + IFC_PARSE_API bool rename_file(const std::string& old_filename, const std::string& new_filename); + +#ifdef _MSC_VER + + /// Uses windows.h string conversion functions + IFC_PARSE_API std::string to_utf8(const std::wstring& str); + + /// Uses windows.h string conversion functions + IFC_PARSE_API std::wstring from_utf8(const std::string& str); +#else + /// Identity operation + IFC_PARSE_API inline std::string to_utf8(const std::string& str) { return str; } + + /// Identity operation + IFC_PARSE_API inline std::string from_utf8(const std::string& str) { return str; } +#endif + + } + +} + +#endif From c3adcf631aa21fc16864052ee892d92e50e3b580 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 8 Feb 2019 16:53:09 +0100 Subject: [PATCH 18/52] Fix previous commit --- src/ifcgeomserver/IfcGeomServer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeomserver/IfcGeomServer.cpp b/src/ifcgeomserver/IfcGeomServer.cpp index 1664de3311..4eb2ef7f4f 100644 --- a/src/ifcgeomserver/IfcGeomServer.cpp +++ b/src/ifcgeomserver/IfcGeomServer.cpp @@ -443,7 +443,7 @@ public: for (auto& part : elem->geometry()) { TopExp_Explorer exp(part.Shape(), TopAbs_FACE); - while (exp.More()) { + for (; exp.More(); exp.Next()) { GProp_GProps prop; BRepGProp::SurfaceProperties(exp.Current(), prop); const double area = prop.Mass(); From 826752ca6c5b8aab1faba297230430749819acf4 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 12 Feb 2019 12:47:01 +0100 Subject: [PATCH 19/52] Geomserver bounding box sizes --- src/ifcgeomserver/IfcGeomServer.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/ifcgeomserver/IfcGeomServer.cpp b/src/ifcgeomserver/IfcGeomServer.cpp index 4eb2ef7f4f..dfa041f05b 100644 --- a/src/ifcgeomserver/IfcGeomServer.cpp +++ b/src/ifcgeomserver/IfcGeomServer.cpp @@ -49,6 +49,8 @@ #include #include +#include +#include #include #include @@ -402,6 +404,8 @@ static const std::string SURFACE_AREA_ALONG_Y = "SURFACE_AREA_ALONG_Y"; static const std::string SURFACE_AREA_ALONG_Z = "SURFACE_AREA_ALONG_Z"; static const std::string WALKABLE_SURFACE_AREA = "WALKABLE_SURFACE_AREA"; static const std::string LARGEST_FACE_AREA = "LARGEST_FACE_AREA"; +static const std::string BOUNDING_BOX_SIZE_ALONG_ = "BOUNDING_BOX_SIZE_ALONG_"; +static const std::array XYZ = { "X", "Y", "Z" }; class QuantityWriter_v0 : public EntityExtension { private: @@ -454,6 +458,24 @@ public: } put_json(LARGEST_FACE_AREA, largest_face_area); + + { + Bnd_Box box; + double xyz[6]; + + for (auto& part : elem->geometry()) { + BRepBndLib::AddClose(part.Shape(), box); + } + + if (!box.IsVoid()) { + box.Get(xyz[0], xyz[1], xyz[2], xyz[3], xyz[4], xyz[5]); + for (int i = 0; i < 3; ++i) { + const double bsz = xyz[i + 3] - xyz[i]; + put_json(BOUNDING_BOX_SIZE_ALONG_ + XYZ[i], bsz); + } + } + + } } }; From 68151b970a6cb34b200f64e67c470ae87b28f4de Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 12 Feb 2019 13:59:49 +0100 Subject: [PATCH 20/52] Conditionally sew faces based on detection of shared edges --- src/ifcgeom/IfcGeomFunctions.cpp | 69 ++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index f0764ccc1f..f5afab6017 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -101,6 +101,7 @@ #include #include #include +#include #include #include @@ -363,32 +364,66 @@ bool IfcGeom::Kernel::create_solid_from_faces(const TopTools_ListOfShape& face_l return false; } - TopTools_ListIteratorOfListOfShape face_iterator; + TopTools_ListIteratorOfListOfShape face_iterator; - BRepOffsetAPI_Sewing builder; - builder.SetTolerance(getValue(GV_PRECISION)); - builder.SetMaxTolerance(getValue(GV_PRECISION)); - builder.SetMinTolerance(getValue(GV_PRECISION)); + bool has_shared_edges = false; + TopTools_MapOfShape edge_set; + + for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { + // As soon as is detected one of the edges is shared, the assumption is made no + // additional sewing is necessary. + if (!has_shared_edges) { + TopExp_Explorer exp(face_iterator.Value(), TopAbs_EDGE); + for (; exp.More(); exp.Next()) { + if (edge_set.Contains(exp.Current())) { + has_shared_edges = true; + break; + } + edge_set.Add(exp.Current()); + } + } + } + + BRepOffsetAPI_Sewing sewing_builder; + sewing_builder.SetTolerance(getValue(GV_PRECISION)); + sewing_builder.SetMaxTolerance(getValue(GV_PRECISION)); + sewing_builder.SetMinTolerance(getValue(GV_PRECISION)); + + BRep_Builder builder; + TopoDS_Shell shell; + builder.MakeShell(shell); for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { - builder.Add(face_iterator.Value()); + if (has_shared_edges) { + builder.Add(shell, face_iterator.Value()); + } else { + sewing_builder.Add(face_iterator.Value()); + } } try { - builder.Perform(); - shape = builder.SewedShape(); + if (has_shared_edges) { + ShapeFix_Shell fix; + fix.FixFaceOrientation(shell); + shape = fix.Shape(); + } else { + sewing_builder.Perform(); + shape = sewing_builder.SewedShape(); + } + + BRepCheck_Analyzer ana(shape); + valid_shell = ana.IsValid(); - { - BRepCheck_Analyzer ana(shape); - if (!ana.IsValid()) { - ShapeFix_Shape sfs(shape); - sfs.Perform(); - shape = sfs.Shape(); - } + if (!valid_shell) { + ShapeFix_Shape sfs(shape); + sfs.Perform(); + shape = sfs.Shape(); + + BRepCheck_Analyzer reana(shape); + valid_shell = reana.IsValid(); } - BRepCheck_Analyzer ana(shape); - valid_shell = ana.IsValid() != 0 && count(shape, TopAbs_SHELL) > 0; + valid_shell &= count(shape, TopAbs_SHELL) > 0; } catch (const Standard_Failure& e) { if (e.GetMessageString() && strlen(e.GetMessageString())) { Logger::Error(e.GetMessageString()); From 5db91e52daeb8b7667ded744134554111834a422 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 12 Feb 2019 14:55:03 +0100 Subject: [PATCH 21/52] Fixes to logger templates --- src/ifcparse/IfcLogger.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/ifcparse/IfcLogger.cpp b/src/ifcparse/IfcLogger.cpp index d966edec53..a105e5bcf4 100644 --- a/src/ifcparse/IfcLogger.cpp +++ b/src/ifcparse/IfcLogger.cpp @@ -37,12 +37,15 @@ namespace { static const std::array, 3> value; }; + template <> const std::array, 3> severity_strings::value = { "Notice", "Warning", "Error" }; + + template <> const std::array, 3> severity_strings::value = { L"Notice", L"Warning", L"Error" }; template void plain_text_message(T& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { - os << "[" << severity_strings::value[type] << "] "; + os << "[" << severity_strings::value[type] << "] "; if (current_product) { os << "{" << (*current_product)->GlobalId().c_str() << "} "; } @@ -65,21 +68,21 @@ namespace { template void json_message(T& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { - boost::property_tree::basic_ptree, std::basic_string > pt; + boost::property_tree::basic_ptree, std::basic_string > pt; // @todo this is crazy - static const T::char_type level_string[] = { 'l', 'e', 'v', 'e', 'l', 0 }; - static const T::char_type product_string[] = { 'p', 'r', 'o', 'd', 'u', 'c', 't', 0 }; - static const T::char_type message_string[] = { 'm', 'e', 's', 's', 'a', 'g', 'e', 0 }; - static const T::char_type instance_string[] = { 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 0 }; + static const typename T::char_type level_string[] = { 'l', 'e', 'v', 'e', 'l', 0 }; + static const typename T::char_type product_string[] = { 'p', 'r', 'o', 'd', 'u', 'c', 't', 0 }; + static const typename T::char_type message_string[] = { 'm', 'e', 's', 's', 'a', 'g', 'e', 0 }; + static const typename T::char_type instance_string[] = { 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 0 }; - pt.put(level_string, severity_strings::value[type]); + pt.put(level_string, severity_strings::value[type]); if (current_product) { - pt.put(product_string, string_as((**current_product).entity->toString())); + pt.put(product_string, string_as((**current_product).entity->toString())); } - pt.put(message_string, string_as(message)); + pt.put(message_string, string_as(message)); if (entity) { - pt.put(instance_string, string_as(entity->toString())); + pt.put(instance_string, string_as(entity->toString())); } boost::property_tree::write_json(os, pt, false); } @@ -109,7 +112,7 @@ void Logger::SetOutput(std::wostream* l1, std::wostream* l2) { template void Logger::log(T& log2, Logger::Severity type, const std::string& message, IfcEntityInstanceData* entity) { - log2 << "[" << severity_strings[type] << "] "; + log2 << "[" << severity_strings::value[type] << "] "; if (current_product) { log2 << "{" << (*current_product)->GlobalId().c_str() << "} "; } From 94c3261ba8ef7d1ebd8629d11de7a4852a4e1e64 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 12 Feb 2019 16:31:38 +0100 Subject: [PATCH 22/52] Geomserver positions in 64bit --- src/ifcgeomserver/IfcGeomServer.cpp | 41 ++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/src/ifcgeomserver/IfcGeomServer.cpp b/src/ifcgeomserver/IfcGeomServer.cpp index dfa041f05b..3c737dacba 100644 --- a/src/ifcgeomserver/IfcGeomServer.cpp +++ b/src/ifcgeomserver/IfcGeomServer.cpp @@ -108,6 +108,20 @@ void swrite(std::ostream& s, std::string t) { while (len++ % 4) s.put(0); } +template +void swrite_array(std::ostream& s, const std::vector& us) { + if (std::is_same::value) { + swrite(s, std::string((char*)us.data(), us.size() * sizeof(U))); + } else { + std::vector ts; + ts.reserve(us.size()); + for (auto& u : us) { + ts.push_back((T)u); + } + swrite_array(s, ts); + } +} + class Command { protected: virtual void read_content(std::istream& s) = 0; @@ -258,7 +272,7 @@ public: class Entity : public Command { private: - const IfcGeom::TriangulationElement* geom; + const IfcGeom::TriangulationElement* geom; bool append_line_data; EntityExtension* eext_; protected: @@ -283,8 +297,9 @@ protected: const int integer_representation_id = atoi(representation_id.c_str()); swrite(s, (int32_t)integer_representation_id); - swrite(s, std::string((char*)geom->geometry().verts().data(), geom->geometry().verts().size() * sizeof(float))); - swrite(s, std::string((char*)geom->geometry().normals().data(), geom->geometry().normals().size() * sizeof(float))); + swrite_array(s, geom->geometry().verts()); + swrite_array(s, geom->geometry().normals()); + { std::vector indices; const std::vector& faces = geom->geometry().faces(); @@ -292,7 +307,7 @@ protected: for (std::vector::const_iterator it = faces.begin(); it != faces.end(); ++it) { indices.push_back(*it); } - swrite(s, std::string((char*) indices.data(), indices.size() * sizeof(int32_t))); + swrite_array(s, indices); if (append_line_data) { std::vector lines; @@ -311,7 +326,7 @@ protected: lines.push_back(i2); } - swrite(s, std::string((char*) lines.data(), lines.size() * sizeof(int32_t))); + swrite_array(s, lines); } } { std::vector diffuse_color_array; @@ -344,7 +359,7 @@ protected: } } public: - Entity(const IfcGeom::TriangulationElement* geom, EntityExtension* eext = 0) : Command(ENTITY), geom(geom), append_line_data(false), eext_(eext) {}; + Entity(const IfcGeom::TriangulationElement* geom, EntityExtension* eext = 0) : Command(ENTITY), geom(geom), append_line_data(false), eext_(eext) {}; }; class Next : public Command { @@ -409,9 +424,9 @@ static const std::array XYZ = { "X", "Y", "Z" }; class QuantityWriter_v0 : public EntityExtension { private: - const IfcGeom::BRepElement* elem_; + const IfcGeom::BRepElement* elem_; public: - QuantityWriter_v0(const IfcGeom::BRepElement* elem) : + QuantityWriter_v0(const IfcGeom::BRepElement* elem) : elem_(elem) { put_json(TOTAL_SURFACE_AREA, 0.); @@ -424,9 +439,9 @@ public: class QuantityWriter_v1 : public EntityExtension { private: - const IfcGeom::BRepElement* elem_; + const IfcGeom::BRepElement* elem_; public: - QuantityWriter_v1(const IfcGeom::BRepElement* elem) : + QuantityWriter_v1(const IfcGeom::BRepElement* elem) : elem_(elem) { double a, b, c, largest_face_area = 0.; @@ -499,7 +514,7 @@ int main () { double deflection = 1.e-3; bool has_more = false; - IfcGeom::Iterator* iterator = 0; + IfcGeom::Iterator* iterator = 0; IfcParse::IfcFile* file = 0; std::vector< std::pair > setting_pairs; @@ -534,7 +549,7 @@ int main () { settings.set_deflection_tolerance(deflection); file = new IfcParse::IfcFile(data, (int)len); - iterator = new IfcGeom::Iterator(settings, file); + iterator = new IfcGeom::Iterator(settings, file); has_more = iterator->initialize(); More(has_more).write(std::cout); @@ -546,7 +561,7 @@ int main () { exit_code = 1; break; } - const IfcGeom::TriangulationElement* geom = static_cast*>(iterator->get()); + const IfcGeom::TriangulationElement* geom = static_cast*>(iterator->get()); std::unique_ptr eext; if (emit_quantities) { eext.reset(new QuantityWriter_v1(iterator->get_native())); From 4822b57584f64e2f38db760a37ff0def95b83fbe Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 13 Feb 2019 10:08:55 +0100 Subject: [PATCH 23/52] Process binary trees of boolean ops in a single call. Fixes #546 --- src/ifcgeom/IfcGeomShapes.cpp | 106 ++++++++++++++++++++++------------ 1 file changed, 69 insertions(+), 37 deletions(-) diff --git a/src/ifcgeom/IfcGeomShapes.cpp b/src/ifcgeom/IfcGeomShapes.cpp index e72af56d93..a93a02edf2 100644 --- a/src/ifcgeom/IfcGeomShapes.cpp +++ b/src/ifcgeom/IfcGeomShapes.cpp @@ -485,6 +485,44 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape bool is_halfspace = operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class()); bool is_unbounded_halfspace = is_halfspace && !operand2->declaration().is(IfcSchema::IfcPolygonalBoundedHalfSpace::Class()); + BOPAlgo_Operation occ_op; + + const IfcSchema::IfcBooleanOperator::Value op = l->Operator(); + if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE) { + occ_op = BOPAlgo_CUT; + } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION) { + occ_op = BOPAlgo_COMMON; + } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION) { + occ_op = BOPAlgo_FUSE; + } else { + return false; + } + + std::vector second_operands; + second_operands.push_back(operand2); + + if (occ_op == BOPAlgo_CUT && !is_halfspace) { + bool process_as_list = true; + while (true) { + auto res1 = operand1->as(); + if (res1) { + if (res1->Operator() == op) { + operand1 = res1->FirstOperand(); + second_operands.push_back(res1->SecondOperand()); + } else { + process_as_list = false; + break; + } + } else { + break; + } + } + + if (!process_as_list) { + operand1 = l->FirstOperand(); + } + } + if ( shape_type(operand1) == ST_SHAPELIST ) { if (!(convert_shapes(operand1, items1) && flatten_shape_list(items1, s1, true))) { return false; @@ -501,32 +539,38 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape } const double first_operand_volume = shape_volume(s1); - if ( first_operand_volume <= ALMOST_ZERO ) - Logger::Message(Logger::LOG_WARNING,"Empty solid for:",l->FirstOperand()); + if (first_operand_volume <= ALMOST_ZERO) { + Logger::Message(Logger::LOG_WARNING, "Empty solid for:", l->FirstOperand()); + } - bool shape2_processed = false; - if ( shape_type(operand2) == ST_SHAPELIST ) { - shape2_processed = convert_shapes(operand2, items2) && flatten_shape_list(items2, s2, true); - } else if ( shape_type(operand2) == ST_SHAPE ) { - shape2_processed = convert_shape(operand2,s2); - if (shape2_processed && !is_halfspace) { - TopoDS_Solid temp_solid; - s2 = ensure_fit_for_subtraction(s2, temp_solid); + TopTools_ListOfShape second_operand_shapes; + + for (auto& operand2 : second_operands) { + bool shape2_processed = false; + if (shape_type(operand2) == ST_SHAPELIST) { + shape2_processed = convert_shapes(operand2, items2) && flatten_shape_list(items2, s2, true); + } else if (shape_type(operand2) == ST_SHAPE) { + shape2_processed = convert_shape(operand2, s2); + if (shape2_processed && !is_halfspace) { + TopoDS_Solid temp_solid; + s2 = ensure_fit_for_subtraction(s2, temp_solid); + } + } else { + Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", operand2); } - } else { - Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", operand2); - } - if (!shape2_processed) { - shape = s1; - Logger::Message(Logger::LOG_ERROR,"Failed to convert SecondOperand of:",l); - return true; - } + if (!shape2_processed) { + Logger::Message(Logger::LOG_ERROR, "Failed to convert SecondOperand of:", l); + continue; + } - if (!is_halfspace) { - const double second_operand_volume = shape_volume(s2); - if ( second_operand_volume <= ALMOST_ZERO ) - Logger::Message(Logger::LOG_WARNING,"Empty solid for:",operand2); + if (!is_halfspace) { + const double second_operand_volume = shape_volume(s2); + if (second_operand_volume <= ALMOST_ZERO) + Logger::Message(Logger::LOG_WARNING, "Empty solid for:", operand2); + } + + second_operand_shapes.Append(s2); } if (is_unbounded_halfspace) { @@ -539,12 +583,11 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape return true; } else { s2 = temp; + second_operand_shapes.Append(s2); } } } - const IfcSchema::IfcBooleanOperator::Value op = l->Operator(); - /* // TK: A little debugging trick to output both operands for visual inspection @@ -555,24 +598,13 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape builder.Add(compound, s2); shape = compound; return true; - */ - - BOPAlgo_Operation occ_op; - if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE) { - occ_op = BOPAlgo_CUT; - } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION) { - occ_op = BOPAlgo_COMMON; - } else if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION) { - occ_op = BOPAlgo_FUSE; - } else { - return false; - } + */ #if OCC_VERSION_HEX < 0x60900 bool valid_result = boolean_operation(s1, s2, occ_op, shape); #else const double fuzz = is_halfspace ? getValue(GV_PRECISION) * 10. : -1.; - bool valid_result = boolean_operation(s1, s2, occ_op, shape, fuzz); + bool valid_result = boolean_operation(s1, second_operand_shapes, occ_op, shape, fuzz); #endif if (op == IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE) { From 8d65086e01a7fd5b39061117bf8d9f74cb448d07 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 13 Feb 2019 14:16:58 +0100 Subject: [PATCH 24/52] Fix #540. Fix XML serializer schema registration. --- src/serializers/schema_dependent/XmlSerializer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/serializers/schema_dependent/XmlSerializer.cpp b/src/serializers/schema_dependent/XmlSerializer.cpp index bc0fa96b64..33e0f42063 100644 --- a/src/serializers/schema_dependent/XmlSerializer.cpp +++ b/src/serializers/schema_dependent/XmlSerializer.cpp @@ -36,7 +36,7 @@ using boost::property_tree::ptree; #include "XmlSerializer.h" namespace { - struct factory_t { + struct MAKE_TYPE_NAME(factory_t) { XmlSerializer* operator()(IfcParse::IfcFile* file, const std::string& xml_filename) const { MAKE_TYPE_NAME(XmlSerializer)* s = new MAKE_TYPE_NAME(XmlSerializer)(file, xml_filename); s->setFile(file); @@ -47,7 +47,7 @@ namespace { void MAKE_INIT_FN(XmlSerializer)(XmlSerializerFactory::Factory* mapping) { static const std::string schema_name = STRINGIFY(IfcSchema); - factory_t factory; + MAKE_TYPE_NAME(factory_t) factory; mapping->bind(schema_name, factory); } From d12cacbd2ed9143cd79339caec417438f3ee8d43 Mon Sep 17 00:00:00 2001 From: David Leverton Date: Wed, 13 Feb 2019 15:34:50 +0000 Subject: [PATCH 25/52] Fix Position handling for IfcSurfaceCurveSweptAreaSolid --- src/ifcgeom/IfcGeomShapes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ifcgeom/IfcGeomShapes.cpp b/src/ifcgeom/IfcGeomShapes.cpp index 1beb4cbcc6..c4ba25ce9b 100644 --- a/src/ifcgeom/IfcGeomShapes.cpp +++ b/src/ifcgeom/IfcGeomShapes.cpp @@ -885,7 +885,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcRectangularTrimmedSurface* l, } bool IfcGeom::Kernel::convert(const IfcSchema::IfcSurfaceCurveSweptAreaSolid* l, TopoDS_Shape& shape) { - gp_Trsf directrix, position; + gp_Trsf directrix; TopoDS_Shape face; TopoDS_Wire wire, section; @@ -964,7 +964,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcSurfaceCurveSweptAreaSolid* l, if (has_position) { // IfcSweptAreaSolid.Position (trsf) is an IfcAxis2Placement3D // and therefore has a unit scale factor - shape.Move(position); + shape.Move(trsf); } return true; From d583bf52846a5eefa57107bb4f53e8de384dca0e Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 15 Feb 2019 13:09:54 +0100 Subject: [PATCH 26/52] Populate entity subtypes, get schema info in Python --- src/ifcexpressparser/schema_class.py | 23 +- src/ifcparse/Ifc2x3-schema.cpp | 5132 +++++++++++++--------- src/ifcparse/Ifc4-schema.cpp | 6049 +++++++++++++++----------- src/ifcparse/IfcSchema.h | 80 +- src/ifcparse/parse_ifcxml.cpp | 8 +- src/ifcwrap/IfcParseWrapper.i | 112 +- src/ifcwrap/utils/type_conversion.i | 5 +- src/ifcwrap/utils/typemaps_out.i | 30 + 8 files changed, 6726 insertions(+), 4713 deletions(-) diff --git a/src/ifcexpressparser/schema_class.py b/src/ifcexpressparser/schema_class.py index c23a2eb2bd..09c4ebbbd4 100644 --- a/src/ifcexpressparser/schema_class.py +++ b/src/ifcexpressparser/schema_class.py @@ -23,6 +23,8 @@ import nodes import codegen import templates +from collections import defaultdict + class SchemaClass(codegen.Base): def __init__(self, mapping): @@ -167,11 +169,11 @@ __attribute__((optnone)) attribute_names = list(map(operator.attrgetter('name'), mapping.arguments(type))) statements.append(' {') - statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.attributes)) + statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.attributes)) for attr in type.attributes: attr_name, optional = attr.name, str(attr.optional).lower() decl_type = get_declared_type(attr.type) - statements.append(' attributes.push_back(new entity::attribute("%(attr_name)s", %(decl_type)s, %(optional)s));' % locals()) + statements.append(' attributes.push_back(new attribute("%(attr_name)s", %(decl_type)s, %(optional)s));' % locals()) statements.append(' std::vector derived; derived.reserve(%d);' % len(attribute_names)) statements.append(' ' + " ".join(map(lambda b: 'derived.push_back(%s);' % str(b in derived).lower(), attribute_names))) statements.append(' %(schema_name)s_%(name)s_type->set_attributes(attributes, derived);' % locals()) @@ -180,7 +182,7 @@ __attribute__((optnone)) for name, type in mapping.schema.entities.items(): if type.inverse: statements.append(' {') - statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.inverse.elements)) + statements.append(' std::vector attributes; attributes.reserve(%d);' % len(type.inverse.elements)) for attr in type.inverse.elements: if attr.bounds: make_bound = lambda b: -1 if b == '?' else int(b) @@ -190,9 +192,22 @@ __attribute__((optnone)) attr_name, aggr_type, entity_ref = attr.name, attr.type, attr.entity if aggr_type is None: aggr_type = 'unspecified' attribute_entity, attribute_entity_index = find_inverse_name_and_index(entity_ref, attr.attribute) - statements.append(' attributes.push_back(new entity::inverse_attribute("%(attr_name)s", entity::inverse_attribute::%(aggr_type)s_type, %(bound1)d, %(bound2)d, %(schema_name)s_%(entity_ref)s_type, %(schema_name)s_%(attribute_entity)s_type->attributes()[%(attribute_entity_index)d]));' % locals()) + statements.append(' attributes.push_back(new inverse_attribute("%(attr_name)s", inverse_attribute::%(aggr_type)s_type, %(bound1)d, %(bound2)d, %(schema_name)s_%(entity_ref)s_type, %(schema_name)s_%(attribute_entity)s_type->attributes()[%(attribute_entity_index)d]));' % locals()) statements.append(' %(schema_name)s_%(name)s_type->set_inverse_attributes(attributes);' % locals()) statements.append(' }') + + subtypes = defaultdict(list) + + for name, type in mapping.schema.entities.items(): + for ty in type.supertypes: + subtypes[ty].append(name) + + for name, tys in subtypes.items(): + statements.append(' {') + statements.append(' std::vector defs; defs.reserve(%d);' % len(tys)) + statements.append((' ' + "".join(map(lambda t: ("defs.push_back(%%(schema_name)s_%s_type);" % t), tys))) % locals()) + statements.append(' %(schema_name)s_%(name)s_type->set_subtypes(defs);' % locals()) + statements.append(' }') statements.append('') statements.append(' std::vector declarations; declarations.reserve(%(num_declarations)d);' % locals()) diff --git a/src/ifcparse/Ifc2x3-schema.cpp b/src/ifcparse/Ifc2x3-schema.cpp index 845c869bf2..6867b3ea79 100644 --- a/src/ifcparse/Ifc2x3-schema.cpp +++ b/src/ifcparse/Ifc2x3-schema.cpp @@ -4942,5610 +4942,6440 @@ IfcParse::schema_definition* IFC2X3_populate_schema() { IFC2X3_IfcElectricDistributionPoint_type = new entity("IfcElectricDistributionPoint", 283, IFC2X3_IfcFlowController_type); IFC2X3_IfcReinforcingBar_type = new entity("IfcReinforcingBar", 662, IFC2X3_IfcReinforcingElement_type); { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_Ifc2DCompositeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RequestID", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RequestID", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActionRequest_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TheActor", new named_type(IFC2X3_IfcActorSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TheActor", new named_type(IFC2X3_IfcActorSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Role", new named_type(IFC2X3_IfcRoleEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedRole", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Role", new named_type(IFC2X3_IfcRoleEnum_type), false)); + attributes.push_back(new attribute("UserDefinedRole", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActorRole_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcActuatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcActuatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcActuatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcAddressTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPurpose", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcAddressTypeEnum_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("UserDefinedPurpose", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAirTerminalBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAirTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAirTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAirToAirHeatRecoveryTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAirToAirHeatRecoveryTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAirToAirHeatRecoveryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAlarmTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAlarmTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAlarmType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcAngularDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationCurveOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationFillArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FillStyleTarget", new named_type(IFC2X3_IfcPoint_type), true)); - attributes.push_back(new entity::attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FillStyleTarget", new named_type(IFC2X3_IfcPoint_type), true)); + attributes.push_back(new attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationFillAreaOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Item", new named_type(IFC2X3_IfcGeometricRepresentationItem_type), false)); - attributes.push_back(new entity::attribute("TextureCoordinates", new named_type(IFC2X3_IfcTextureCoordinate_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Item", new named_type(IFC2X3_IfcGeometricRepresentationItem_type), false)); + attributes.push_back(new attribute("TextureCoordinates", new named_type(IFC2X3_IfcTextureCoordinate_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationSurfaceOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationSymbolOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAnnotationTextOccurrence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ApplicationDeveloper", new named_type(IFC2X3_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationFullName", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ApplicationDeveloper", new named_type(IFC2X3_IfcOrganization_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationFullName", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApplication_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("AppliedValue", new named_type(IFC2X3_IfcAppliedValueSelect_type), true)); - attributes.push_back(new entity::attribute("UnitBasis", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); - attributes.push_back(new entity::attribute("ApplicableDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("FixedUntilDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("AppliedValue", new named_type(IFC2X3_IfcAppliedValueSelect_type), true)); + attributes.push_back(new attribute("UnitBasis", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); + attributes.push_back(new attribute("ApplicableDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("FixedUntilDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAppliedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ComponentOfTotal", new named_type(IFC2X3_IfcAppliedValue_type), false)); - attributes.push_back(new entity::attribute("Components", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); - attributes.push_back(new entity::attribute("ArithmeticOperator", new named_type(IFC2X3_IfcArithmeticOperatorEnum_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ComponentOfTotal", new named_type(IFC2X3_IfcAppliedValue_type), false)); + attributes.push_back(new attribute("Components", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); + attributes.push_back(new attribute("ArithmeticOperator", new named_type(IFC2X3_IfcArithmeticOperatorEnum_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAppliedValueRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ApprovalDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("ApprovalStatus", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ApprovalLevel", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ApprovalQualifier", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ApprovalDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("ApprovalStatus", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ApprovalLevel", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ApprovalQualifier", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Actor", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("Role", new named_type(IFC2X3_IfcActorRole_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Actor", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); + attributes.push_back(new attribute("Role", new named_type(IFC2X3_IfcActorRole_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApprovalActorRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ApprovedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); - attributes.push_back(new entity::attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ApprovedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + attributes.push_back(new attribute("Approval", new named_type(IFC2X3_IfcApproval_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApprovalPropertyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatedApproval", new named_type(IFC2X3_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatedApproval", new named_type(IFC2X3_IfcApproval_type), false)); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcApprovalRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OuterCurve", new named_type(IFC2X3_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OuterCurve", new named_type(IFC2X3_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcArbitraryClosedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Curve", new named_type(IFC2X3_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Curve", new named_type(IFC2X3_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcArbitraryOpenProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCurve_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcArbitraryProfileDefWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("AssetID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), false)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), false)); - attributes.push_back(new entity::attribute("TotalReplacementCost", new named_type(IFC2X3_IfcCostValue_type), false)); - attributes.push_back(new entity::attribute("Owner", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("User", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("ResponsiblePerson", new named_type(IFC2X3_IfcPerson_type), false)); - attributes.push_back(new entity::attribute("IncorporationDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); - attributes.push_back(new entity::attribute("DepreciatedValue", new named_type(IFC2X3_IfcCostValue_type), false)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("AssetID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), false)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), false)); + attributes.push_back(new attribute("TotalReplacementCost", new named_type(IFC2X3_IfcCostValue_type), false)); + attributes.push_back(new attribute("Owner", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("User", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("ResponsiblePerson", new named_type(IFC2X3_IfcPerson_type), false)); + attributes.push_back(new attribute("IncorporationDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); + attributes.push_back(new attribute("DepreciatedValue", new named_type(IFC2X3_IfcCostValue_type), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAsset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("TopFlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopFlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("TopFlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopFlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAsymmetricIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAxis1Placement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAxis2Placement2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC2X3_IfcDirection_type), true)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcAxis2Placement3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Degree", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); - attributes.push_back(new entity::attribute("CurveForm", new named_type(IFC2X3_IfcBSplineCurveForm_type), false)); - attributes.push_back(new entity::attribute("ClosedCurve", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Degree", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + attributes.push_back(new attribute("CurveForm", new named_type(IFC2X3_IfcBSplineCurveForm_type), false)); + attributes.push_back(new attribute("ClosedCurve", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBSplineCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBeam_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBezierCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RasterFormat", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("RasterCode", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RasterFormat", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("RasterCode", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBlobTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBlock_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcBoilerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcBoilerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoilerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBooleanClippingResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC2X3_IfcBooleanOperator_type), false)); - attributes.push_back(new entity::attribute("FirstOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); - attributes.push_back(new entity::attribute("SecondOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Operator", new named_type(IFC2X3_IfcBooleanOperator_type), false)); + attributes.push_back(new attribute("FirstOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); + attributes.push_back(new attribute("SecondOperand", new named_type(IFC2X3_IfcBooleanOperand_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBooleanResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcBoundaryCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfLinearSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthX", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthY", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthZ", new named_type(IFC2X3_IfcModulusOfRotationalSubgradeReactionMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryEdgeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("LinearStiffnessByAreaX", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByAreaY", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessByAreaZ", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("LinearStiffnessByAreaX", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByAreaY", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessByAreaZ", new named_type(IFC2X3_IfcModulusOfSubgradeReactionMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryFaceCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearStiffnessX", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessY", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearStiffnessZ", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessX", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessY", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessZ", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearStiffnessX", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessY", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); + attributes.push_back(new attribute("LinearStiffnessZ", new named_type(IFC2X3_IfcLinearStiffnessMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessX", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessY", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); + attributes.push_back(new attribute("RotationalStiffnessZ", new named_type(IFC2X3_IfcRotationalStiffnessMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryNodeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingStiffness", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingStiffness", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundaryNodeConditionWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcBoundedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcBoundedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Corner", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Corner", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoundingBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Enclosure", new named_type(IFC2X3_IfcBoundingBox_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Enclosure", new named_type(IFC2X3_IfcBoundingBox_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBoxedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ElevationOfRefHeight", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ElevationOfTerrain", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BuildingAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ElevationOfRefHeight", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ElevationOfTerrain", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("BuildingAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuilding_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementComponent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementPart_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcBuildingElementProxyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcBuildingElementProxyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementProxyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcBuildingStorey_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Girth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InternalFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Girth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InternalFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCableCarrierFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCableCarrierSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCableCarrierSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCableSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCableSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCableSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DayComponent", new named_type(IFC2X3_IfcDayInMonthNumber_type), false)); - attributes.push_back(new entity::attribute("MonthComponent", new named_type(IFC2X3_IfcMonthInYearNumber_type), false)); - attributes.push_back(new entity::attribute("YearComponent", new named_type(IFC2X3_IfcYearNumber_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DayComponent", new named_type(IFC2X3_IfcDayInMonthNumber_type), false)); + attributes.push_back(new attribute("MonthComponent", new named_type(IFC2X3_IfcMonthInYearNumber_type), false)); + attributes.push_back(new attribute("YearComponent", new named_type(IFC2X3_IfcYearNumber_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCalendarDate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcCartesianPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Axis1", new named_type(IFC2X3_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("Axis2", new named_type(IFC2X3_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("LocalOrigin", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Scale", new simple_type(simple_type::real_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Axis1", new named_type(IFC2X3_IfcDirection_type), true)); + attributes.push_back(new attribute("Axis2", new named_type(IFC2X3_IfcDirection_type), true)); + attributes.push_back(new attribute("LocalOrigin", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Scale", new simple_type(simple_type::real_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Scale2", new simple_type(simple_type::real_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Scale2", new simple_type(simple_type::real_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator2DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis3", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis3", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Scale2", new simple_type(simple_type::real_type), true)); - attributes.push_back(new entity::attribute("Scale3", new simple_type(simple_type::real_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Scale2", new simple_type(simple_type::real_type), true)); + attributes.push_back(new attribute("Scale3", new simple_type(simple_type::real_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCartesianTransformationOperator3DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCenterLineProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcChamferEdgeFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcChillerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcChillerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcChillerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCircle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCircleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCircleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Source", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Edition", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("EditionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Source", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Edition", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("EditionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Notation", new named_type(IFC2X3_IfcClassificationNotationFacet_type), false)); - attributes.push_back(new entity::attribute("ItemOf", new named_type(IFC2X3_IfcClassification_type), true)); - attributes.push_back(new entity::attribute("Title", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Notation", new named_type(IFC2X3_IfcClassificationNotationFacet_type), false)); + attributes.push_back(new attribute("ItemOf", new named_type(IFC2X3_IfcClassification_type), true)); + attributes.push_back(new attribute("Title", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassificationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingItem", new named_type(IFC2X3_IfcClassificationItem_type), false)); - attributes.push_back(new entity::attribute("RelatedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationItem_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingItem", new named_type(IFC2X3_IfcClassificationItem_type), false)); + attributes.push_back(new attribute("RelatedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationItem_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassificationItemRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("NotationFacets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationFacet_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("NotationFacets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationFacet_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcClassificationNotation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("NotationValue", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("NotationValue", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcClassificationNotationFacet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ReferencedSource", new named_type(IFC2X3_IfcClassification_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ReferencedSource", new named_type(IFC2X3_IfcClassification_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcClassificationReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcClosedShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoilTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoilTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoilType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Red", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Green", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Blue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Red", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Green", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Blue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcColourRgb_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcColourSpecification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcColumn_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcColumnTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcColumnTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcColumnType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcComplexProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCompositeCurveSegment_type)), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCompositeCurveSegment_type)), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompositeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Transition", new named_type(IFC2X3_IfcTransitionCode_type), false)); - attributes.push_back(new entity::attribute("SameSense", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("ParentCurve", new named_type(IFC2X3_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Transition", new named_type(IFC2X3_IfcTransitionCode_type), false)); + attributes.push_back(new attribute("SameSense", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("ParentCurve", new named_type(IFC2X3_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompositeCurveSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompositeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCompressorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCompressorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCompressorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCondenserTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCondenserTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCondenserType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Criterion", new named_type(IFC2X3_IfcConditionCriterionSelect_type), false)); - attributes.push_back(new entity::attribute("CriterionDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Criterion", new named_type(IFC2X3_IfcConditionCriterionSelect_type), false)); + attributes.push_back(new attribute("CriterionDateTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConditionCriterion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcConic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFace_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFace_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcConnectedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CurveOnRelatingElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), false)); - attributes.push_back(new entity::attribute("CurveOnRelatedElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CurveOnRelatingElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), false)); + attributes.push_back(new attribute("CurveOnRelatedElement", new named_type(IFC2X3_IfcCurveOrEdgeCurve_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionCurveGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcConnectionGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("EccentricityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("EccentricityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionPointEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PointOnRelatingElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), false)); - attributes.push_back(new entity::attribute("PointOnRelatedElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PointOnRelatingElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), false)); + attributes.push_back(new attribute("PointOnRelatedElement", new named_type(IFC2X3_IfcPointOrVertexPoint_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionPointGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("LocationAtRelatingElement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("LocationAtRelatedElement", new named_type(IFC2X3_IfcAxis2Placement_type), true)); - attributes.push_back(new entity::attribute("ProfileOfPort", new named_type(IFC2X3_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("LocationAtRelatingElement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("LocationAtRelatedElement", new named_type(IFC2X3_IfcAxis2Placement_type), true)); + attributes.push_back(new attribute("ProfileOfPort", new named_type(IFC2X3_IfcProfileDef_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionPortGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SurfaceOnRelatingElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), false)); - attributes.push_back(new entity::attribute("SurfaceOnRelatedElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SurfaceOnRelatingElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), false)); + attributes.push_back(new attribute("SurfaceOnRelatedElement", new named_type(IFC2X3_IfcSurfaceOrFaceSurface_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConnectionSurfaceGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ConstraintGrade", new named_type(IFC2X3_IfcConstraintEnum_type), false)); - attributes.push_back(new entity::attribute("ConstraintSource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CreatingActor", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("UserDefinedGrade", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ConstraintGrade", new named_type(IFC2X3_IfcConstraintEnum_type), false)); + attributes.push_back(new attribute("ConstraintSource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("CreatingActor", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("UserDefinedGrade", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedConstraints", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); - attributes.push_back(new entity::attribute("LogicalAggregator", new named_type(IFC2X3_IfcLogicalOperatorEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedConstraints", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); + attributes.push_back(new attribute("LogicalAggregator", new named_type(IFC2X3_IfcLogicalOperatorEnum_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraintAggregationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ClassifiedConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ClassifiedConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraintClassificationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedConstraints", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedConstraints", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConstraint_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstraintRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionEquipmentResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Suppliers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("UsageRatio", new named_type(IFC2X3_IfcRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Suppliers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("UsageRatio", new named_type(IFC2X3_IfcRatioMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionMaterialResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionProductResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ResourceIdentifier", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("ResourceGroup", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ResourceConsumption", new named_type(IFC2X3_IfcResourceConsumptionEnum_type), true)); - attributes.push_back(new entity::attribute("BaseQuantity", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ResourceIdentifier", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("ResourceGroup", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ResourceConsumption", new named_type(IFC2X3_IfcResourceConsumptionEnum_type), true)); + attributes.push_back(new attribute("BaseQuantity", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConstructionResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcContextDependentUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcControllerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcControllerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ConversionFactor", new named_type(IFC2X3_IfcMeasureWithUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("ConversionFactor", new named_type(IFC2X3_IfcMeasureWithUnit_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcConversionBasedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCooledBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCooledBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCooledBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoolingTowerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoolingTowerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoolingTowerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("HourOffset", new named_type(IFC2X3_IfcHourInDay_type), false)); - attributes.push_back(new entity::attribute("MinuteOffset", new named_type(IFC2X3_IfcMinuteInHour_type), true)); - attributes.push_back(new entity::attribute("Sense", new named_type(IFC2X3_IfcAheadOrBehind_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("HourOffset", new named_type(IFC2X3_IfcHourInDay_type), false)); + attributes.push_back(new attribute("MinuteOffset", new named_type(IFC2X3_IfcMinuteInHour_type), true)); + attributes.push_back(new attribute("Sense", new named_type(IFC2X3_IfcAheadOrBehind_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoordinatedUniversalTimeOffset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCostItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("SubmittedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("PreparedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("SubmittedOn", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("TargetUsers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("UpdateDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCostScheduleTypeEnum_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("SubmittedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("PreparedBy", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("SubmittedOn", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("TargetUsers", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("UpdateDate", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCostScheduleTypeEnum_type), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCostSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CostType", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Condition", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CostType", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Condition", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCostValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCovering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCoveringTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCoveringType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseWidth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseWidth4", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseWidth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseWidth4", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCraneRailAShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("HeadDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("HeadDepth3", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BaseDepth2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCraneRailFShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCrewResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcCsgPrimitive3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TreeRootExpression", new named_type(IFC2X3_IfcCsgSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TreeRootExpression", new named_type(IFC2X3_IfcCsgSelect_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcCsgSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("RelatedMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("ExchangeRate", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("RateDateTime", new named_type(IFC2X3_IfcDateAndTime_type), false)); - attributes.push_back(new entity::attribute("RateSource", new named_type(IFC2X3_IfcLibraryInformation_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("RelatedMonetaryUnit", new named_type(IFC2X3_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("ExchangeRate", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); + attributes.push_back(new attribute("RateDateTime", new named_type(IFC2X3_IfcDateAndTime_type), false)); + attributes.push_back(new attribute("RateSource", new named_type(IFC2X3_IfcLibraryInformation_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurrencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurtainWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcCurtainWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcCurtainWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurtainWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC2X3_IfcPlane_type), false)); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC2X3_IfcPlane_type), false)); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcCurve_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveBoundedPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC2X3_IfcCurveFontOrScaledCurveFontSelect_type), true)); - attributes.push_back(new entity::attribute("CurveWidth", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("CurveColour", new named_type(IFC2X3_IfcColour_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("CurveFont", new named_type(IFC2X3_IfcCurveFontOrScaledCurveFontSelect_type), true)); + attributes.push_back(new attribute("CurveWidth", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("CurveColour", new named_type(IFC2X3_IfcColour_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCurveStyleFontPattern_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcCurveStyleFontPattern_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyleFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC2X3_IfcCurveStyleFontSelect_type), false)); - attributes.push_back(new entity::attribute("CurveFontScaling", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("CurveFont", new named_type(IFC2X3_IfcCurveStyleFontSelect_type), false)); + attributes.push_back(new attribute("CurveFontScaling", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyleFontAndScaling_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VisibleSegmentLength", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InvisibleSegmentLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VisibleSegmentLength", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("InvisibleSegmentLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcCurveStyleFontPattern_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDamperTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDamperTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDamperType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DateComponent", new named_type(IFC2X3_IfcCalendarDate_type), false)); - attributes.push_back(new entity::attribute("TimeComponent", new named_type(IFC2X3_IfcLocalTime_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DateComponent", new named_type(IFC2X3_IfcCalendarDate_type), false)); + attributes.push_back(new attribute("TimeComponent", new named_type(IFC2X3_IfcLocalTime_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDateAndTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Definition", new named_type(IFC2X3_IfcDefinedSymbolSelect_type), false)); - attributes.push_back(new entity::attribute("Target", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Definition", new named_type(IFC2X3_IfcDefinedSymbolSelect_type), false)); + attributes.push_back(new attribute("Target", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDefinedSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ParentProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ParentProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Operator", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), false)); + attributes.push_back(new attribute("Label", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDerivedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDerivedUnitElement_type)), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC2X3_IfcDerivedUnitEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDerivedUnitElement_type)), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC2X3_IfcDerivedUnitEnum_type), false)); + attributes.push_back(new attribute("UserDefinedType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDerivedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), false)); - attributes.push_back(new entity::attribute("Exponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), false)); + attributes.push_back(new attribute("Exponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDerivedUnitElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDiameterDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionCalloutRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDimensionCurveDirectedCallout_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Role", new named_type(IFC2X3_IfcDimensionExtentUsage_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Role", new named_type(IFC2X3_IfcDimensionExtentUsage_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionCurveTerminator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionPair_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("MassExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("MassExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDimensionalExponents_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new simple_type(simple_type::real_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new simple_type(simple_type::real_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDirection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDiscreteAccessory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDiscreteAccessoryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionChamberElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDistributionChamberElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDistributionChamberElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionChamberElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ControlElementId", new named_type(IFC2X3_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ControlElementId", new named_type(IFC2X3_IfcIdentifier_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionControlElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionControlElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionFlowElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionFlowElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FlowDirection", new named_type(IFC2X3_IfcFlowDirectionEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FlowDirection", new named_type(IFC2X3_IfcFlowDirectionEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDistributionPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("FileExtension", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MimeContentType", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MimeSubtype", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("FileExtension", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("MimeContentType", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("MimeSubtype", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentElectronicFormat_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(17); - attributes.push_back(new entity::attribute("DocumentId", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("DocumentReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentReference_type)), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("IntendedUse", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Scope", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Revision", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DocumentOwner", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); - attributes.push_back(new entity::attribute("LastRevisionTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); - attributes.push_back(new entity::attribute("ElectronicFormat", new named_type(IFC2X3_IfcDocumentElectronicFormat_type), true)); - attributes.push_back(new entity::attribute("ValidFrom", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("ValidUntil", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("Confidentiality", new named_type(IFC2X3_IfcDocumentConfidentialityEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcDocumentStatusEnum_type), true)); + std::vector attributes; attributes.reserve(17); + attributes.push_back(new attribute("DocumentId", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("DocumentReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentReference_type)), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("IntendedUse", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Scope", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Revision", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("DocumentOwner", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); + attributes.push_back(new attribute("LastRevisionTime", new named_type(IFC2X3_IfcDateAndTime_type), true)); + attributes.push_back(new attribute("ElectronicFormat", new named_type(IFC2X3_IfcDocumentElectronicFormat_type), true)); + attributes.push_back(new attribute("ValidFrom", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("ValidUntil", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("Confidentiality", new named_type(IFC2X3_IfcDocumentConfidentialityEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcDocumentStatusEnum_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentInformation_type), false)); - attributes.push_back(new entity::attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentInformation_type)), false)); - attributes.push_back(new entity::attribute("RelationshipType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentInformation_type), false)); + attributes.push_back(new attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentInformation_type)), false)); + attributes.push_back(new attribute("RelationshipType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentInformationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDocumentReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(11); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(11); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdOffset", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoorLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PanelDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelOperation", new named_type(IFC2X3_IfcDoorPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelWidth", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC2X3_IfcDoorPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PanelDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PanelOperation", new named_type(IFC2X3_IfcDoorPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelWidth", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC2X3_IfcDoorPanelPositionEnum_type), false)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoorPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcDoorStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC2X3_IfcDoorStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcDoorStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC2X3_IfcDoorStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDoorStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Contents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDraughtingCalloutElement_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Contents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDraughtingCalloutElement_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingCallout_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); - attributes.push_back(new entity::attribute("RelatedDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); + attributes.push_back(new attribute("RelatedDraughtingCallout", new named_type(IFC2X3_IfcDraughtingCallout_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDraughtingCalloutRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcDraughtingPreDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDuctFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDuctFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDuctFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDuctSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSilencerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcDuctSilencerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcDuctSilencerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeStart", new named_type(IFC2X3_IfcVertex_type), false)); - attributes.push_back(new entity::attribute("EdgeEnd", new named_type(IFC2X3_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeStart", new named_type(IFC2X3_IfcVertex_type), false)); + attributes.push_back(new attribute("EdgeEnd", new named_type(IFC2X3_IfcVertex_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeGeometry", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeGeometry", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEdgeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FeatureLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FeatureLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEdgeFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcEdgeLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DistributionPointFunction", new named_type(IFC2X3_IfcElectricDistributionPointFunctionEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedFunction", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DistributionPointFunction", new named_type(IFC2X3_IfcElectricDistributionPointFunctionEnum_type), false)); + attributes.push_back(new attribute("UserDefinedFunction", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricDistributionPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricFlowStorageDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricFlowStorageDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricGeneratorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricGeneratorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricGeneratorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricHeaterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricHeaterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricHeaterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricMotorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricMotorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricMotorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElectricTimeControlTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElectricTimeControlTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricTimeControlType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("ElectricCurrentType", new named_type(IFC2X3_IfcElectricCurrentEnum_type), true)); - attributes.push_back(new entity::attribute("InputVoltage", new named_type(IFC2X3_IfcElectricVoltageMeasure_type), false)); - attributes.push_back(new entity::attribute("InputFrequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); - attributes.push_back(new entity::attribute("FullLoadCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumCircuitCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); - attributes.push_back(new entity::attribute("RatedPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); - attributes.push_back(new entity::attribute("InputPhase", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("ElectricCurrentType", new named_type(IFC2X3_IfcElectricCurrentEnum_type), true)); + attributes.push_back(new attribute("InputVoltage", new named_type(IFC2X3_IfcElectricVoltageMeasure_type), false)); + attributes.push_back(new attribute("InputFrequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); + attributes.push_back(new attribute("FullLoadCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); + attributes.push_back(new attribute("MinimumCircuitCurrent", new named_type(IFC2X3_IfcElectricCurrentMeasure_type), true)); + attributes.push_back(new attribute("MaximumPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); + attributes.push_back(new attribute("RatedPowerInput", new named_type(IFC2X3_IfcPowerMeasure_type), true)); + attributes.push_back(new attribute("InputPhase", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricalBaseProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricalCircuit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElectricalElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC2X3_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Tag", new named_type(IFC2X3_IfcIdentifier_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcElementAssemblyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcElementAssemblyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementAssembly_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementComponent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementComponentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MethodOfMeasurement", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MethodOfMeasurement", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ElementType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ElementType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcElementarySurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEllipse_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEllipseProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnergyConversionDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnergyConversionDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EnergySequence", new named_type(IFC2X3_IfcEnergySequenceEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedEnergySequence", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EnergySequence", new named_type(IFC2X3_IfcEnergySequenceEnum_type), true)); + attributes.push_back(new attribute("UserDefinedEnergySequence", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnergyProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ImpactType", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC2X3_IfcEnvironmentalImpactCategoryEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedCategory", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ImpactType", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Category", new named_type(IFC2X3_IfcEnvironmentalImpactCategoryEnum_type), false)); + attributes.push_back(new attribute("UserDefinedCategory", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEnvironmentalImpactValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEquipmentElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEquipmentStandard_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporativeCoolerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporativeCoolerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEvaporativeCoolerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcEvaporatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcEvaporatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ExtendedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ExtendedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExtendedMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Location", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ItemReference", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Location", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ItemReference", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternalReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedHatchStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExternallyDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcExtrudedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFaceBound_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFaceBound_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConnectedFaceSet_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcConnectedFaceSet_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFaceBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Bound", new named_type(IFC2X3_IfcLoop_type), false)); - attributes.push_back(new entity::attribute("Orientation", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Bound", new named_type(IFC2X3_IfcLoop_type), false)); + attributes.push_back(new attribute("Orientation", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFaceBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFaceOuterBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FaceSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("SameSense", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FaceSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("SameSense", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFaceSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFacetedBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClosedShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClosedShell_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFacetedBrepWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TensionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TensionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureX", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureY", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFailureConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFanTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFanTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFanType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFeatureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFeatureElementAddition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFeatureElementSubtraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillStyleSelect_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFillAreaStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("HatchLineAppearance", new named_type(IFC2X3_IfcCurveStyle_type), false)); - attributes.push_back(new entity::attribute("StartOfNextHatchLine", new named_type(IFC2X3_IfcHatchLineDistanceSelect_type), false)); - attributes.push_back(new entity::attribute("PointOfReferenceHatchLine", new named_type(IFC2X3_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("PatternStart", new named_type(IFC2X3_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("HatchLineAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("HatchLineAppearance", new named_type(IFC2X3_IfcCurveStyle_type), false)); + attributes.push_back(new attribute("StartOfNextHatchLine", new named_type(IFC2X3_IfcHatchLineDistanceSelect_type), false)); + attributes.push_back(new attribute("PointOfReferenceHatchLine", new named_type(IFC2X3_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("PatternStart", new named_type(IFC2X3_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("HatchLineAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFillAreaStyleHatching_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Symbol", new named_type(IFC2X3_IfcAnnotationSymbolOccurrence_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Symbol", new named_type(IFC2X3_IfcAnnotationSymbolOccurrence_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcFillAreaStyleTileSymbolWithStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TilingPattern", new named_type(IFC2X3_IfcOneDirectionRepeatFactor_type), false)); - attributes.push_back(new entity::attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillAreaStyleTileShapeSelect_type)), false)); - attributes.push_back(new entity::attribute("TilingScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TilingPattern", new named_type(IFC2X3_IfcOneDirectionRepeatFactor_type), false)); + attributes.push_back(new attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcFillAreaStyleTileShapeSelect_type)), false)); + attributes.push_back(new attribute("TilingScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFillAreaStyleTiles_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFilterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFilterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFilterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFireSuppressionTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFireSuppressionTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFireSuppressionTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowController_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFlowInstrumentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFlowInstrumentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowInstrumentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFlowMeterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFlowMeterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowMeterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowMovingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowMovingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowStorageDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTreatmentDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFlowTreatmentDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(15); - attributes.push_back(new entity::attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); - attributes.push_back(new entity::attribute("FlowConditionTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("VelocityTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("FlowrateTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("Fluid", new named_type(IFC2X3_IfcMaterial_type), false)); - attributes.push_back(new entity::attribute("PressureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("TemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("WetBulbTemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("WetBulbTemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("TemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("FlowrateSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); - attributes.push_back(new entity::attribute("FlowConditionSingleValue", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("VelocitySingleValue", new named_type(IFC2X3_IfcLinearVelocityMeasure_type), true)); - attributes.push_back(new entity::attribute("PressureSingleValue", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + std::vector attributes; attributes.reserve(15); + attributes.push_back(new attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); + attributes.push_back(new attribute("FlowConditionTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("VelocityTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("FlowrateTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("Fluid", new named_type(IFC2X3_IfcMaterial_type), false)); + attributes.push_back(new attribute("PressureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("TemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("WetBulbTemperatureSingleValue", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("WetBulbTemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("TemperatureTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("FlowrateSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); + attributes.push_back(new attribute("FlowConditionSingleValue", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("VelocitySingleValue", new named_type(IFC2X3_IfcLinearVelocityMeasure_type), true)); + attributes.push_back(new attribute("PressureSingleValue", new named_type(IFC2X3_IfcPressureMeasure_type), true)); std::vector derived; derived.reserve(19); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFluidFlowProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcFootingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcFootingTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFooting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CombustionTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("CarbonContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("LowerHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); - attributes.push_back(new entity::attribute("HigherHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CombustionTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("CarbonContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("LowerHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); + attributes.push_back(new attribute("HigherHeatingValue", new named_type(IFC2X3_IfcHeatingValueMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFuelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnishingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnishingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnitureStandard_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC2X3_IfcAssemblyPlaceEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcFurnitureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcGasTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcGasTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGasTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MolecularWeight", new named_type(IFC2X3_IfcMolecularWeightMeasure_type), true)); - attributes.push_back(new entity::attribute("Porosity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("MassDensity", new named_type(IFC2X3_IfcMassDensityMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MolecularWeight", new named_type(IFC2X3_IfcMolecularWeightMeasure_type), true)); + attributes.push_back(new attribute("Porosity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("MassDensity", new named_type(IFC2X3_IfcMassDensityMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeneralMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PhysicalWeight", new named_type(IFC2X3_IfcMassPerLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Perimeter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PhysicalWeight", new named_type(IFC2X3_IfcMassPerLengthMeasure_type), true)); + attributes.push_back(new attribute("Perimeter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MinimumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MaximumPlateThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeneralProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcGeometricCurveSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CoordinateSpaceDimension", new named_type(IFC2X3_IfcDimensionCount_type), false)); - attributes.push_back(new entity::attribute("Precision", new simple_type(simple_type::real_type), true)); - attributes.push_back(new entity::attribute("WorldCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("TrueNorth", new named_type(IFC2X3_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CoordinateSpaceDimension", new named_type(IFC2X3_IfcDimensionCount_type), false)); + attributes.push_back(new attribute("Precision", new simple_type(simple_type::real_type), true)); + attributes.push_back(new attribute("WorldCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("TrueNorth", new named_type(IFC2X3_IfcDirection_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeometricRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcGeometricRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ParentContext", new named_type(IFC2X3_IfcGeometricRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("TargetScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("TargetView", new named_type(IFC2X3_IfcGeometricProjectionEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedTargetView", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ParentContext", new named_type(IFC2X3_IfcGeometricRepresentationContext_type), false)); + attributes.push_back(new attribute("TargetScale", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("TargetView", new named_type(IFC2X3_IfcGeometricProjectionEnum_type), false)); + attributes.push_back(new attribute("UserDefinedTargetView", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGeometricRepresentationSubContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcGeometricSetSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcGeometricSetSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcGeometricSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcGridAxis_type)), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGrid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("AxisTag", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AxisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC2X3_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("AxisTag", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("AxisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC2X3_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGridAxis_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementLocation", new named_type(IFC2X3_IfcVirtualGridIntersection_type), false)); - attributes.push_back(new entity::attribute("PlacementRefDirection", new named_type(IFC2X3_IfcVirtualGridIntersection_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementLocation", new named_type(IFC2X3_IfcVirtualGridIntersection_type), false)); + attributes.push_back(new attribute("PlacementRefDirection", new named_type(IFC2X3_IfcVirtualGridIntersection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGridPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BaseSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("AgreementFlag", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BaseSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("AgreementFlag", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHalfSpaceSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcHeatExchangerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcHeatExchangerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHeatExchangerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcHumidifierTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcHumidifierTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHumidifierType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("UpperVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("LowerVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("IsothermalMoistureCapacity", new named_type(IFC2X3_IfcIsothermalMoistureCapacityMeasure_type), true)); - attributes.push_back(new entity::attribute("VaporPermeability", new named_type(IFC2X3_IfcVaporPermeabilityMeasure_type), true)); - attributes.push_back(new entity::attribute("MoistureDiffusivity", new named_type(IFC2X3_IfcMoistureDiffusivityMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("UpperVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("LowerVaporResistanceFactor", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("IsothermalMoistureCapacity", new named_type(IFC2X3_IfcIsothermalMoistureCapacityMeasure_type), true)); + attributes.push_back(new attribute("VaporPermeability", new named_type(IFC2X3_IfcVaporPermeabilityMeasure_type), true)); + attributes.push_back(new attribute("MoistureDiffusivity", new named_type(IFC2X3_IfcMoistureDiffusivityMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcHygroscopicMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OverallDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("OverallDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("UrlReference", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("UrlReference", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcImageTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("InventoryType", new named_type(IFC2X3_IfcInventoryTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Jurisdiction", new named_type(IFC2X3_IfcActorSelect_type), false)); - attributes.push_back(new entity::attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), false)); - attributes.push_back(new entity::attribute("LastUpdateDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("InventoryType", new named_type(IFC2X3_IfcInventoryTypeEnum_type), false)); + attributes.push_back(new attribute("Jurisdiction", new named_type(IFC2X3_IfcActorSelect_type), false)); + attributes.push_back(new attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), false)); + attributes.push_back(new attribute("LastUpdateDate", new named_type(IFC2X3_IfcCalendarDate_type), false)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC2X3_IfcCostValue_type), true)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC2X3_IfcCostValue_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcInventory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcIrregularTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcIrregularTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcIrregularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStamp", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStamp", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcIrregularTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcJunctionBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcJunctionBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcJunctionBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LegSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LegSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SkillSet", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SkillSet", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLaborResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcLampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcLampTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLampType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Publisher", new named_type(IFC2X3_IfcOrganization_type), true)); - attributes.push_back(new entity::attribute("VersionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); - attributes.push_back(new entity::attribute("LibraryReference", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLibraryReference_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Publisher", new named_type(IFC2X3_IfcOrganization_type), true)); + attributes.push_back(new attribute("VersionDate", new named_type(IFC2X3_IfcCalendarDate_type), true)); + attributes.push_back(new attribute("LibraryReference", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLibraryReference_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLibraryInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLibraryReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MainPlaneAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcPlaneAngleMeasure_type)), false)); - attributes.push_back(new entity::attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLuminousIntensityDistributionMeasure_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MainPlaneAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcPlaneAngleMeasure_type)), false)); + attributes.push_back(new attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLuminousIntensityDistributionMeasure_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightDistributionData_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcLightFixtureTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcLightFixtureTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightFixtureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LightDistributionCurve", new named_type(IFC2X3_IfcLightDistributionCurveEnum_type), false)); - attributes.push_back(new entity::attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLightDistributionData_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LightDistributionCurve", new named_type(IFC2X3_IfcLightDistributionCurveEnum_type), false)); + attributes.push_back(new attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLightDistributionData_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightIntensityDistribution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LightColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("AmbientIntensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Intensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("LightColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("AmbientIntensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Intensity", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceAmbient_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceDirectional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("ColourAppearance", new named_type(IFC2X3_IfcColourRgb_type), true)); - attributes.push_back(new entity::attribute("ColourTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), false)); - attributes.push_back(new entity::attribute("LuminousFlux", new named_type(IFC2X3_IfcLuminousFluxMeasure_type), false)); - attributes.push_back(new entity::attribute("LightEmissionSource", new named_type(IFC2X3_IfcLightEmissionSourceEnum_type), false)); - attributes.push_back(new entity::attribute("LightDistributionDataSource", new named_type(IFC2X3_IfcLightDistributionDataSourceSelect_type), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("ColourAppearance", new named_type(IFC2X3_IfcColourRgb_type), true)); + attributes.push_back(new attribute("ColourTemperature", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), false)); + attributes.push_back(new attribute("LuminousFlux", new named_type(IFC2X3_IfcLuminousFluxMeasure_type), false)); + attributes.push_back(new attribute("LightEmissionSource", new named_type(IFC2X3_IfcLightEmissionSourceEnum_type), false)); + attributes.push_back(new attribute("LightDistributionDataSource", new named_type(IFC2X3_IfcLightDistributionDataSourceSelect_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceGoniometric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ConstantAttenuation", new named_type(IFC2X3_IfcReal_type), false)); - attributes.push_back(new entity::attribute("DistanceAttenuation", new named_type(IFC2X3_IfcReal_type), false)); - attributes.push_back(new entity::attribute("QuadricAttenuation", new named_type(IFC2X3_IfcReal_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ConstantAttenuation", new named_type(IFC2X3_IfcReal_type), false)); + attributes.push_back(new attribute("DistanceAttenuation", new named_type(IFC2X3_IfcReal_type), false)); + attributes.push_back(new attribute("QuadricAttenuation", new named_type(IFC2X3_IfcReal_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourcePositional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("ConcentrationExponent", new named_type(IFC2X3_IfcReal_type), true)); - attributes.push_back(new entity::attribute("SpreadAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("BeamWidthAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("ConcentrationExponent", new named_type(IFC2X3_IfcReal_type), true)); + attributes.push_back(new attribute("SpreadAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("BeamWidthAngle", new named_type(IFC2X3_IfcPositivePlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLightSourceSpot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Pnt", new named_type(IFC2X3_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Dir", new named_type(IFC2X3_IfcVector_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Pnt", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Dir", new named_type(IFC2X3_IfcVector_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcLinearDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementRelTo", new named_type(IFC2X3_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("RelativePlacement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementRelTo", new named_type(IFC2X3_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("RelativePlacement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLocalPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("HourComponent", new named_type(IFC2X3_IfcHourInDay_type), false)); - attributes.push_back(new entity::attribute("MinuteComponent", new named_type(IFC2X3_IfcMinuteInHour_type), true)); - attributes.push_back(new entity::attribute("SecondComponent", new named_type(IFC2X3_IfcSecondInMinute_type), true)); - attributes.push_back(new entity::attribute("Zone", new named_type(IFC2X3_IfcCoordinatedUniversalTimeOffset_type), true)); - attributes.push_back(new entity::attribute("DaylightSavingOffset", new named_type(IFC2X3_IfcDaylightSavingHour_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("HourComponent", new named_type(IFC2X3_IfcHourInDay_type), false)); + attributes.push_back(new attribute("MinuteComponent", new named_type(IFC2X3_IfcMinuteInHour_type), true)); + attributes.push_back(new attribute("SecondComponent", new named_type(IFC2X3_IfcSecondInMinute_type), true)); + attributes.push_back(new attribute("Zone", new named_type(IFC2X3_IfcCoordinatedUniversalTimeOffset_type), true)); + attributes.push_back(new attribute("DaylightSavingOffset", new named_type(IFC2X3_IfcDaylightSavingHour_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcLocalTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Outer", new named_type(IFC2X3_IfcClosedShell_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Outer", new named_type(IFC2X3_IfcClosedShell_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcManifoldSolidBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingSource", new named_type(IFC2X3_IfcRepresentationMap_type), false)); - attributes.push_back(new entity::attribute("MappingTarget", new named_type(IFC2X3_IfcCartesianTransformationOperator_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingSource", new named_type(IFC2X3_IfcRepresentationMap_type), false)); + attributes.push_back(new attribute("MappingTarget", new named_type(IFC2X3_IfcCartesianTransformationOperator_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMappedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); - attributes.push_back(new entity::attribute("ClassifiedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcClassificationNotationSelect_type)), false)); + attributes.push_back(new attribute("ClassifiedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialClassificationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RepresentedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RepresentedMaterial", new named_type(IFC2X3_IfcMaterial_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialDefinitionRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Material", new named_type(IFC2X3_IfcMaterial_type), true)); - attributes.push_back(new entity::attribute("LayerThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("IsVentilated", new named_type(IFC2X3_IfcLogical_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Material", new named_type(IFC2X3_IfcMaterial_type), true)); + attributes.push_back(new attribute("LayerThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("IsVentilated", new named_type(IFC2X3_IfcLogical_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialLayer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterialLayer_type)), false)); - attributes.push_back(new entity::attribute("LayerSetName", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterialLayer_type)), false)); + attributes.push_back(new attribute("LayerSetName", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialLayerSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ForLayerSet", new named_type(IFC2X3_IfcMaterialLayerSet_type), false)); - attributes.push_back(new entity::attribute("LayerSetDirection", new named_type(IFC2X3_IfcLayerSetDirectionEnum_type), false)); - attributes.push_back(new entity::attribute("DirectionSense", new named_type(IFC2X3_IfcDirectionSenseEnum_type), false)); - attributes.push_back(new entity::attribute("OffsetFromReferenceLine", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ForLayerSet", new named_type(IFC2X3_IfcMaterialLayerSet_type), false)); + attributes.push_back(new attribute("LayerSetDirection", new named_type(IFC2X3_IfcLayerSetDirectionEnum_type), false)); + attributes.push_back(new attribute("DirectionSense", new named_type(IFC2X3_IfcDirectionSenseEnum_type), false)); + attributes.push_back(new attribute("OffsetFromReferenceLine", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMaterialLayerSetUsage_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterial_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcMaterial_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMaterialList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Material", new named_type(IFC2X3_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Material", new named_type(IFC2X3_IfcMaterial_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ValueComponent", new named_type(IFC2X3_IfcValue_type), false)); - attributes.push_back(new entity::attribute("UnitComponent", new named_type(IFC2X3_IfcUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ValueComponent", new named_type(IFC2X3_IfcValue_type), false)); + attributes.push_back(new attribute("UnitComponent", new named_type(IFC2X3_IfcUnit_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMeasureWithUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("CompressiveStrength", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("MaxAggregateSize", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("AdmixturesDescription", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Workability", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProtectivePoreRatio", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("WaterImpermeability", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("CompressiveStrength", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("MaxAggregateSize", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("AdmixturesDescription", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Workability", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ProtectivePoreRatio", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("WaterImpermeability", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalConcreteMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DynamicViscosity", new named_type(IFC2X3_IfcDynamicViscosityMeasure_type), true)); - attributes.push_back(new entity::attribute("YoungModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); - attributes.push_back(new entity::attribute("PoissonRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalExpansionCoefficient", new named_type(IFC2X3_IfcThermalExpansionCoefficientMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DynamicViscosity", new named_type(IFC2X3_IfcDynamicViscosityMeasure_type), true)); + attributes.push_back(new attribute("YoungModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); + attributes.push_back(new attribute("ShearModulus", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); + attributes.push_back(new attribute("PoissonRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalExpansionCoefficient", new named_type(IFC2X3_IfcThermalExpansionCoefficientMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("YieldStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("UltimateStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("UltimateStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("HardeningModule", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); - attributes.push_back(new entity::attribute("ProportionalStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("PlasticStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Relaxations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRelaxation_type)), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("YieldStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("UltimateStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("UltimateStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("HardeningModule", new named_type(IFC2X3_IfcModulusOfElasticityMeasure_type), true)); + attributes.push_back(new attribute("ProportionalStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("PlasticStrain", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("Relaxations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRelaxation_type)), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMechanicalSteelMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcMemberTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcMemberTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMemberType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Benchmark", new named_type(IFC2X3_IfcBenchmarkEnum_type), false)); - attributes.push_back(new entity::attribute("ValueSource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DataValue", new named_type(IFC2X3_IfcMetricValueSelect_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Benchmark", new named_type(IFC2X3_IfcBenchmarkEnum_type), false)); + attributes.push_back(new attribute("ValueSource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("DataValue", new named_type(IFC2X3_IfcMetricValueSelect_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMetric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Currency", new named_type(IFC2X3_IfcCurrencyEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Currency", new named_type(IFC2X3_IfcCurrencyEnum_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcMonetaryUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcMotorConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcMotorConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMotorConnectionType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MoveFrom", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); - attributes.push_back(new entity::attribute("MoveTo", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); - attributes.push_back(new entity::attribute("PunchList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcText_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MoveFrom", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + attributes.push_back(new attribute("MoveTo", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + attributes.push_back(new attribute("PunchList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcText_type)), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcMove_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Dimensions", new named_type(IFC2X3_IfcDimensionalExponents_type), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC2X3_IfcUnitEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Dimensions", new named_type(IFC2X3_IfcDimensionalExponents_type), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC2X3_IfcUnitEnum_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcNamedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ObjectType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ObjectType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcObjectDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcObjectPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BenchmarkValues", new named_type(IFC2X3_IfcMetric_type), true)); - attributes.push_back(new entity::attribute("ResultValues", new named_type(IFC2X3_IfcMetric_type), true)); - attributes.push_back(new entity::attribute("ObjectiveQualifier", new named_type(IFC2X3_IfcObjectiveEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedQualifier", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BenchmarkValues", new named_type(IFC2X3_IfcMetric_type), true)); + attributes.push_back(new attribute("ResultValues", new named_type(IFC2X3_IfcMetric_type), true)); + attributes.push_back(new attribute("ObjectiveQualifier", new named_type(IFC2X3_IfcObjectiveEnum_type), false)); + attributes.push_back(new attribute("UserDefinedQualifier", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcObjective_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcOccupantTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcOccupantTypeEnum_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOccupant_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOffsetCurve2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC2X3_IfcDirection_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOffsetCurve3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcOneDirectionRepeatFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcOpenShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOpeningElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("VisibleTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SolarTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalIrTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalIrEmissivityBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalIrEmissivityFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("VisibleReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("VisibleReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SolarReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SolarReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("VisibleTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("SolarTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalIrTransmittance", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalIrEmissivityBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalIrEmissivityFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("VisibleReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("VisibleReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("SolarReflectanceFront", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("SolarReflectanceBack", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOpticalMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ActionID", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ActionID", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrderAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("RelatingOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcOrganization_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("RelatingOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); + attributes.push_back(new attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcOrganization_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrganizationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeElement", new named_type(IFC2X3_IfcEdge_type), false)); - attributes.push_back(new entity::attribute("Orientation", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeElement", new named_type(IFC2X3_IfcEdge_type), false)); + attributes.push_back(new attribute("Orientation", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOrientedEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcOutletTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcOutletTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOutletType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("OwningUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), false)); - attributes.push_back(new entity::attribute("OwningApplication", new named_type(IFC2X3_IfcApplication_type), false)); - attributes.push_back(new entity::attribute("State", new named_type(IFC2X3_IfcStateEnum_type), true)); - attributes.push_back(new entity::attribute("ChangeAction", new named_type(IFC2X3_IfcChangeActionEnum_type), false)); - attributes.push_back(new entity::attribute("LastModifiedDate", new named_type(IFC2X3_IfcTimeStamp_type), true)); - attributes.push_back(new entity::attribute("LastModifyingUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), true)); - attributes.push_back(new entity::attribute("LastModifyingApplication", new named_type(IFC2X3_IfcApplication_type), true)); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC2X3_IfcTimeStamp_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("OwningUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), false)); + attributes.push_back(new attribute("OwningApplication", new named_type(IFC2X3_IfcApplication_type), false)); + attributes.push_back(new attribute("State", new named_type(IFC2X3_IfcStateEnum_type), true)); + attributes.push_back(new attribute("ChangeAction", new named_type(IFC2X3_IfcChangeActionEnum_type), false)); + attributes.push_back(new attribute("LastModifiedDate", new named_type(IFC2X3_IfcTimeStamp_type), true)); + attributes.push_back(new attribute("LastModifyingUser", new named_type(IFC2X3_IfcPersonAndOrganization_type), true)); + attributes.push_back(new attribute("LastModifyingApplication", new named_type(IFC2X3_IfcApplication_type), true)); + attributes.push_back(new attribute("CreationDate", new named_type(IFC2X3_IfcTimeStamp_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcOwnerHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement2D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement2D_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcParameterizedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPath_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LifeCyclePhase", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LifeCyclePhase", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPerformanceHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcPermeableCoveringOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcPermeableCoveringOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPermeableCoveringProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PermitID", new named_type(IFC2X3_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PermitID", new named_type(IFC2X3_IfcIdentifier_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPermit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("FamilyName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("GivenName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Id", new named_type(IFC2X3_IfcIdentifier_type), true)); + attributes.push_back(new attribute("FamilyName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("GivenName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcAddress_type)), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPerson_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ThePerson", new named_type(IFC2X3_IfcPerson_type), false)); - attributes.push_back(new entity::attribute("TheOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ThePerson", new named_type(IFC2X3_IfcPerson_type), false)); + attributes.push_back(new attribute("TheOrganization", new named_type(IFC2X3_IfcOrganization_type), false)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcActorRole_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPersonAndOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); - attributes.push_back(new entity::attribute("Discrimination", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Quality", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Usage", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPhysicalQuantity_type)), false)); + attributes.push_back(new attribute("Discrimination", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Quality", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Usage", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPhysicalComplexQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPhysicalQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcNamedUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPhysicalSimpleQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPileTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC2X3_IfcPileConstructionEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPileTypeEnum_type), false)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC2X3_IfcPileConstructionEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPile_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPipeFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPipeFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPipeFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPipeSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPipeSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPipeSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Width", new named_type(IFC2X3_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ColourComponents", new named_type(IFC2X3_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new simple_type(simple_type::binary_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Width", new named_type(IFC2X3_IfcInteger_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcInteger_type), false)); + attributes.push_back(new attribute("ColourComponents", new named_type(IFC2X3_IfcInteger_type), false)); + attributes.push_back(new attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new simple_type(simple_type::binary_type)), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPixelTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Location", new named_type(IFC2X3_IfcCartesianPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Location", new named_type(IFC2X3_IfcCartesianPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlanarBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SizeInX", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SizeInY", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SizeInX", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SizeInY", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlanarExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPlateTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPlateTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPlateType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("PointParameter", new named_type(IFC2X3_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("PointParameter", new named_type(IFC2X3_IfcParameterValue_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPointOnCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("PointParameterU", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("PointParameterV", new named_type(IFC2X3_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("PointParameterU", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("PointParameterV", new named_type(IFC2X3_IfcParameterValue_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPointOnSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPolyLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("PolygonalBoundary", new named_type(IFC2X3_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("PolygonalBoundary", new named_type(IFC2X3_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPolygonalBoundedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPolyline_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("InternalLocation", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PostalBox", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Town", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Region", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PostalCode", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Country", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("InternalLocation", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("PostalBox", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Town", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Region", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("PostalCode", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Country", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPostalAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedDimensionSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedPointMarkerSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedTerminatorSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPreDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLayeredItem_type)), false)); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcLayeredItem_type)), false)); + attributes.push_back(new attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPresentationLayerAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("LayerOn", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("LayerFrozen", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("LayerBlocked", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("LayerOn", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("LayerFrozen", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("LayerBlocked", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPresentationLayerWithStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPresentationStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcPresentationStyleAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ProcedureID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("ProcedureType", new named_type(IFC2X3_IfcProcedureTypeEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedProcedureType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ProcedureID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("ProcedureType", new named_type(IFC2X3_IfcProcedureTypeEnum_type), false)); + attributes.push_back(new attribute("UserDefinedProcedureType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProcedure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ObjectPlacement", new named_type(IFC2X3_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("Representation", new named_type(IFC2X3_IfcProductRepresentation_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ObjectPlacement", new named_type(IFC2X3_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("Representation", new named_type(IFC2X3_IfcProductRepresentation_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProductDefinitionShape_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentation_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentation_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProductRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); - attributes.push_back(new entity::attribute("N20Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("COContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("CO2Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); + attributes.push_back(new attribute("N20Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("COContent", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("CO2Content", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProductsOfCombustionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProfileType", new named_type(IFC2X3_IfcProfileTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProfileType", new named_type(IFC2X3_IfcProfileTypeEnum_type), false)); + attributes.push_back(new attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ProfileDefinition", new named_type(IFC2X3_IfcProfileDef_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProfileName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ProfileDefinition", new named_type(IFC2X3_IfcProfileDef_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Phase", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationContext_type)), false)); - attributes.push_back(new entity::attribute("UnitsInContext", new named_type(IFC2X3_IfcUnitAssignment_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Phase", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationContext_type)), false)); + attributes.push_back(new attribute("UnitsInContext", new named_type(IFC2X3_IfcUnitAssignment_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ID", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderTypeEnum_type), false)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectOrder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Records", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRelAssignsToProjectOrder_type)), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderRecordTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Records", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRelAssignsToProjectOrder_type)), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcProjectOrderRecordTypeEnum_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectOrderRecord_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectionCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProjectionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("UpperBoundValue", new named_type(IFC2X3_IfcValue_type), true)); - attributes.push_back(new entity::attribute("LowerBoundValue", new named_type(IFC2X3_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("UpperBoundValue", new named_type(IFC2X3_IfcValue_type), true)); + attributes.push_back(new attribute("LowerBoundValue", new named_type(IFC2X3_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyBoundedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyConstraintRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DependingProperty", new named_type(IFC2X3_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("DependantProperty", new named_type(IFC2X3_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DependingProperty", new named_type(IFC2X3_IfcProperty_type), false)); + attributes.push_back(new attribute("DependantProperty", new named_type(IFC2X3_IfcProperty_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyDependencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("EnumerationReference", new named_type(IFC2X3_IfcPropertyEnumeration_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("EnumerationReference", new named_type(IFC2X3_IfcPropertyEnumeration_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyEnumeratedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyEnumeration_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyListValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PropertyReference", new named_type(IFC2X3_IfcObjectReferenceSelect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("PropertyReference", new named_type(IFC2X3_IfcObjectReferenceSelect_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyReferenceValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertySetDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("NominalValue", new named_type(IFC2X3_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("NominalValue", new named_type(IFC2X3_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertySingleValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("DefiningUnit", new named_type(IFC2X3_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("DefinedUnit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("Expression", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("DefiningUnit", new named_type(IFC2X3_IfcUnit_type), true)); + attributes.push_back(new attribute("DefinedUnit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPropertyTableValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcProtectiveDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcProtectiveDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProtectiveDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProxyType", new named_type(IFC2X3_IfcObjectTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProxyType", new named_type(IFC2X3_IfcObjectTypeEnum_type), false)); + attributes.push_back(new attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcPumpTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcPumpTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcPumpType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AreaValue", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AreaValue", new named_type(IFC2X3_IfcAreaMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CountValue", new named_type(IFC2X3_IfcCountMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CountValue", new named_type(IFC2X3_IfcCountMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityCount_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LengthValue", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LengthValue", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityLength_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TimeValue", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TimeValue", new named_type(IFC2X3_IfcTimeMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("VolumeValue", new named_type(IFC2X3_IfcVolumeMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("VolumeValue", new named_type(IFC2X3_IfcVolumeMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityVolume_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightValue", new named_type(IFC2X3_IfcMassMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightValue", new named_type(IFC2X3_IfcMassMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcQuantityWeight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcRadiusDimension_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRailing_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcRailingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRailingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ShapeType", new named_type(IFC2X3_IfcRampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ShapeType", new named_type(IFC2X3_IfcRampTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRamp_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRampFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcRampFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcRampFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRampFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new simple_type(simple_type::real_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new simple_type(simple_type::real_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRationalBezierCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OuterFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("WallThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OuterFilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("XDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangularPyramid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("U1", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V1", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("U2", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V2", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("Usense", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Vsense", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC2X3_IfcSurface_type), false)); + attributes.push_back(new attribute("U1", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V1", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("U2", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V2", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("Usense", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Vsense", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRectangularTrimmedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ReferencedDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); - attributes.push_back(new entity::attribute("ReferencingValues", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ReferencedDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); + attributes.push_back(new attribute("ReferencingValues", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcAppliedValue_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReferencesValueDocument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStep", new named_type(IFC2X3_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStep", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRegularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TotalCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); - attributes.push_back(new entity::attribute("EffectiveDepth", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalBarDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarCount", new named_type(IFC2X3_IfcCountMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TotalCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); + attributes.push_back(new attribute("EffectiveDepth", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalBarDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarCount", new named_type(IFC2X3_IfcCountMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcementBarProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DefinitionType", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSectionReinforcementProperties_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DefinitionType", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSectionReinforcementProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcementDefinitionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("BarLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("BarLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC2X3_IfcReinforcingBarSurfaceEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcingBar_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("MeshLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MeshWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransverseBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("TransverseBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransverseBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("MeshLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MeshWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TransverseBarNominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("TransverseBarCrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TransverseBarSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcReinforcingMesh_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAggregates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatedObjectsType", new named_type(IFC2X3_IfcObjectTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); + attributes.push_back(new attribute("RelatedObjectsType", new named_type(IFC2X3_IfcObjectTypeEnum_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssigns_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TimeForTask", new named_type(IFC2X3_IfcScheduleTimeControl_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TimeForTask", new named_type(IFC2X3_IfcScheduleTimeControl_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsTasks_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingActor", new named_type(IFC2X3_IfcActor_type), false)); - attributes.push_back(new entity::attribute("ActingRole", new named_type(IFC2X3_IfcActorRole_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingActor", new named_type(IFC2X3_IfcActor_type), false)); + attributes.push_back(new attribute("ActingRole", new named_type(IFC2X3_IfcActorRole_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingControl", new named_type(IFC2X3_IfcControl_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingControl", new named_type(IFC2X3_IfcControl_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingGroup", new named_type(IFC2X3_IfcGroup_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingGroup", new named_type(IFC2X3_IfcGroup_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("QuantityInProcess", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); + attributes.push_back(new attribute("QuantityInProcess", new named_type(IFC2X3_IfcMeasureWithUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingProduct", new named_type(IFC2X3_IfcProduct_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingProduct", new named_type(IFC2X3_IfcProduct_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToProjectOrder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingResource", new named_type(IFC2X3_IfcResource_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingResource", new named_type(IFC2X3_IfcResource_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssignsToResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRoot_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRoot_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingAppliedValue", new named_type(IFC2X3_IfcAppliedValue_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingAppliedValue", new named_type(IFC2X3_IfcAppliedValue_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesAppliedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC2X3_IfcApproval_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingClassification", new named_type(IFC2X3_IfcClassificationNotationSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingClassification", new named_type(IFC2X3_IfcClassificationNotationSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Intent", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Intent", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC2X3_IfcConstraint_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC2X3_IfcDocumentSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesDocument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingLibrary", new named_type(IFC2X3_IfcLibrarySelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingLibrary", new named_type(IFC2X3_IfcLibrarySelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesLibrary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingMaterial", new named_type(IFC2X3_IfcMaterialSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingMaterial", new named_type(IFC2X3_IfcMaterialSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingProfileProperties", new named_type(IFC2X3_IfcProfileProperties_type), false)); - attributes.push_back(new entity::attribute("ProfileSectionLocation", new named_type(IFC2X3_IfcShapeAspect_type), true)); - attributes.push_back(new entity::attribute("ProfileOrientation", new named_type(IFC2X3_IfcOrientationSelect_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingProfileProperties", new named_type(IFC2X3_IfcProfileProperties_type), false)); + attributes.push_back(new attribute("ProfileSectionLocation", new named_type(IFC2X3_IfcShapeAspect_type), true)); + attributes.push_back(new attribute("ProfileOrientation", new named_type(IFC2X3_IfcOrientationSelect_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelAssociatesProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnects_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); - attributes.push_back(new entity::attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); - attributes.push_back(new entity::attribute("RelatedConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("RelatingConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); + attributes.push_back(new attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new simple_type(simple_type::integer_type)), false)); + attributes.push_back(new attribute("RelatedConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); + attributes.push_back(new attribute("RelatingConnectionType", new named_type(IFC2X3_IfcConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsPathElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC2X3_IfcElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsPortToElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedPort", new named_type(IFC2X3_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RealizingElement", new named_type(IFC2X3_IfcElement_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC2X3_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedPort", new named_type(IFC2X3_IfcPort_type), false)); + attributes.push_back(new attribute("RealizingElement", new named_type(IFC2X3_IfcElement_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsPorts_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcStructuralActivityAssignmentSelect_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralActivity", new named_type(IFC2X3_IfcStructuralActivity_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcStructuralActivityAssignmentSelect_type), false)); + attributes.push_back(new attribute("RelatedStructuralActivity", new named_type(IFC2X3_IfcStructuralActivity_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsStructuralElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("RelatingStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralConnection", new named_type(IFC2X3_IfcStructuralConnection_type), false)); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); - attributes.push_back(new entity::attribute("AdditionalConditions", new named_type(IFC2X3_IfcStructuralConnectionCondition_type), true)); - attributes.push_back(new entity::attribute("SupportedLength", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ConditionCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("RelatingStructuralMember", new named_type(IFC2X3_IfcStructuralMember_type), false)); + attributes.push_back(new attribute("RelatedStructuralConnection", new named_type(IFC2X3_IfcStructuralConnection_type), false)); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); + attributes.push_back(new attribute("AdditionalConditions", new named_type(IFC2X3_IfcStructuralConnectionCondition_type), true)); + attributes.push_back(new attribute("SupportedLength", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ConditionCoordinateSystem", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConnectionConstraint", new named_type(IFC2X3_IfcConnectionGeometry_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConnectionConstraint", new named_type(IFC2X3_IfcConnectionGeometry_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsWithEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcElement_type)), false)); - attributes.push_back(new entity::attribute("ConnectionType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcElement_type)), false)); + attributes.push_back(new attribute("ConnectionType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelConnectsWithRealizingElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelContainedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelCoversBldgElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedSpace", new named_type(IFC2X3_IfcSpace_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedSpace", new named_type(IFC2X3_IfcSpace_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelCoversSpaces_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC2X3_IfcObjectDefinition_type), false)); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC2X3_IfcObjectDefinition_type), false)); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObjectDefinition_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDecomposes_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObject_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcObject_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDefines_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingPropertyDefinition", new named_type(IFC2X3_IfcPropertySetDefinition_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingPropertyDefinition", new named_type(IFC2X3_IfcPropertySetDefinition_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDefinesByProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingType", new named_type(IFC2X3_IfcTypeObject_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingType", new named_type(IFC2X3_IfcTypeObject_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelDefinesByType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingOpeningElement", new named_type(IFC2X3_IfcOpeningElement_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingOpeningElement", new named_type(IFC2X3_IfcOpeningElement_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelFillsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDistributionControlElement_type)), false)); - attributes.push_back(new entity::attribute("RelatingFlowElement", new named_type(IFC2X3_IfcDistributionFlowElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDistributionControlElement_type)), false)); + attributes.push_back(new attribute("RelatingFlowElement", new named_type(IFC2X3_IfcDistributionFlowElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelFlowControlElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("DailyInteraction", new named_type(IFC2X3_IfcCountMeasure_type), true)); - attributes.push_back(new entity::attribute("ImportanceRating", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("LocationOfInteraction", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); - attributes.push_back(new entity::attribute("RelatedSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); - attributes.push_back(new entity::attribute("RelatingSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("DailyInteraction", new named_type(IFC2X3_IfcCountMeasure_type), true)); + attributes.push_back(new attribute("ImportanceRating", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("LocationOfInteraction", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); + attributes.push_back(new attribute("RelatedSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); + attributes.push_back(new attribute("RelatingSpaceProgram", new named_type(IFC2X3_IfcSpaceProgram_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelInteractionRequirements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelNests_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelOccupiesSpaces_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OverridingProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OverridingProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProperty_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelOverridesProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedFeatureElement", new named_type(IFC2X3_IfcFeatureElementAddition_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedFeatureElement", new named_type(IFC2X3_IfcFeatureElementAddition_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelProjectsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC2X3_IfcSpatialStructureElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelReferencedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelSchedulesCostItems_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("RelatedProcess", new named_type(IFC2X3_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("TimeLag", new named_type(IFC2X3_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("SequenceType", new named_type(IFC2X3_IfcSequenceEnum_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC2X3_IfcProcess_type), false)); + attributes.push_back(new attribute("RelatedProcess", new named_type(IFC2X3_IfcProcess_type), false)); + attributes.push_back(new attribute("TimeLag", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("SequenceType", new named_type(IFC2X3_IfcSequenceEnum_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelSequence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingSystem", new named_type(IFC2X3_IfcSystem_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcSpatialStructureElement_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingSystem", new named_type(IFC2X3_IfcSystem_type), false)); + attributes.push_back(new attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcSpatialStructureElement_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelServicesBuildings_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingSpace", new named_type(IFC2X3_IfcSpace_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), true)); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("PhysicalOrVirtualBoundary", new named_type(IFC2X3_IfcPhysicalOrVirtualEnum_type), false)); - attributes.push_back(new entity::attribute("InternalOrExternalBoundary", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingSpace", new named_type(IFC2X3_IfcSpace_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC2X3_IfcElement_type), true)); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC2X3_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("PhysicalOrVirtualBoundary", new named_type(IFC2X3_IfcPhysicalOrVirtualEnum_type), false)); + attributes.push_back(new attribute("InternalOrExternalBoundary", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelSpaceBoundary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedOpeningElement", new named_type(IFC2X3_IfcFeatureElementSubtraction_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC2X3_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedOpeningElement", new named_type(IFC2X3_IfcFeatureElementSubtraction_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelVoidsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelaxationValue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("InitialStress", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelaxationValue", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("InitialStress", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRelaxation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ContextOfItems", new named_type(IFC2X3_IfcRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("RepresentationIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationType", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationItem_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ContextOfItems", new named_type(IFC2X3_IfcRepresentationContext_type), false)); + attributes.push_back(new attribute("RepresentationIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationType", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcRepresentationItem_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ContextIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ContextType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ContextIdentifier", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ContextType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingOrigin", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("MappedRepresentation", new named_type(IFC2X3_IfcRepresentation_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingOrigin", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("MappedRepresentation", new named_type(IFC2X3_IfcRepresentation_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRepresentationMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC2X3_IfcAxis1Placement_type), false)); - attributes.push_back(new entity::attribute("Angle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC2X3_IfcAxis1Placement_type), false)); + attributes.push_back(new attribute("Angle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRevolvedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RibHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RibWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RibSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Direction", new named_type(IFC2X3_IfcRibPlateDirectionEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("RibHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("RibWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("RibSpacing", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Direction", new named_type(IFC2X3_IfcRibPlateDirectionEnum_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRibPlateProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRightCircularCone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRightCircularCylinder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ShapeType", new named_type(IFC2X3_IfcRoofTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ShapeType", new named_type(IFC2X3_IfcRoofTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoof_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("GlobalId", new named_type(IFC2X3_IfcGloballyUniqueId_type), false)); - attributes.push_back(new entity::attribute("OwnerHistory", new named_type(IFC2X3_IfcOwnerHistory_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("GlobalId", new named_type(IFC2X3_IfcGloballyUniqueId_type), false)); + attributes.push_back(new attribute("OwnerHistory", new named_type(IFC2X3_IfcOwnerHistory_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoundedEdgeFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RoundingRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RoundingRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcRoundedRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Prefix", new named_type(IFC2X3_IfcSIPrefix_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcSIUnitName_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Prefix", new named_type(IFC2X3_IfcSIPrefix_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcSIUnitName_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSIUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSanitaryTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSanitaryTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSanitaryTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(18); - attributes.push_back(new entity::attribute("ActualStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("EarlyStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("LateStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ScheduleStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ActualFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("EarlyFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("LateFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ScheduleFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("ScheduleDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("ActualDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("RemainingTime", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("FreeFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("IsCritical", new simple_type(simple_type::boolean_type), true)); - attributes.push_back(new entity::attribute("StatusTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("StartFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("FinishFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("Completion", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(18); + attributes.push_back(new attribute("ActualStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("EarlyStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("LateStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ScheduleStart", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ActualFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("EarlyFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("LateFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ScheduleFinish", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("ScheduleDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("ActualDuration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("RemainingTime", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("FreeFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("IsCritical", new simple_type(simple_type::boolean_type), true)); + attributes.push_back(new attribute("StatusTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("StartFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("FinishFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("Completion", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(23); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcScheduleTimeControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SectionType", new named_type(IFC2X3_IfcSectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("StartProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("EndProfile", new named_type(IFC2X3_IfcProfileDef_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SectionType", new named_type(IFC2X3_IfcSectionTypeEnum_type), false)); + attributes.push_back(new attribute("StartProfile", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("EndProfile", new named_type(IFC2X3_IfcProfileDef_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSectionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LongitudinalStartPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalEndPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransversePosition", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ReinforcementRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); - attributes.push_back(new entity::attribute("SectionDefinition", new named_type(IFC2X3_IfcSectionProperties_type), false)); - attributes.push_back(new entity::attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcReinforcementBarProperties_type)), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LongitudinalStartPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalEndPosition", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("TransversePosition", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ReinforcementRole", new named_type(IFC2X3_IfcReinforcingBarRoleEnum_type), false)); + attributes.push_back(new attribute("SectionDefinition", new named_type(IFC2X3_IfcSectionProperties_type), false)); + attributes.push_back(new attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcReinforcementBarProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSectionReinforcementProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SpineCurve", new named_type(IFC2X3_IfcCompositeCurve_type), false)); - attributes.push_back(new entity::attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcAxis2Placement3D_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SpineCurve", new named_type(IFC2X3_IfcCompositeCurve_type), false)); + attributes.push_back(new attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcAxis2Placement3D_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSectionedSpine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSensorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSensorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSensorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ServiceLifeType", new named_type(IFC2X3_IfcServiceLifeTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ServiceLifeDuration", new named_type(IFC2X3_IfcTimeMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ServiceLifeType", new named_type(IFC2X3_IfcServiceLifeTypeEnum_type), false)); + attributes.push_back(new attribute("ServiceLifeDuration", new named_type(IFC2X3_IfcTimeMeasure_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcServiceLife_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcServiceLifeFactorTypeEnum_type), false)); - attributes.push_back(new entity::attribute("UpperValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); - attributes.push_back(new entity::attribute("MostUsedValue", new named_type(IFC2X3_IfcMeasureValue_type), false)); - attributes.push_back(new entity::attribute("LowerValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcServiceLifeFactorTypeEnum_type), false)); + attributes.push_back(new attribute("UpperValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); + attributes.push_back(new attribute("MostUsedValue", new named_type(IFC2X3_IfcMeasureValue_type), false)); + attributes.push_back(new attribute("LowerValue", new named_type(IFC2X3_IfcMeasureValue_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcServiceLifeFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcShapeModel_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProductDefinitional", new simple_type(simple_type::logical_type), false)); - attributes.push_back(new entity::attribute("PartOfProductDefinitionShape", new named_type(IFC2X3_IfcProductDefinitionShape_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcShapeModel_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("ProductDefinitional", new simple_type(simple_type::logical_type), false)); + attributes.push_back(new attribute("PartOfProductDefinitionShape", new named_type(IFC2X3_IfcProductDefinitionShape_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcShapeAspect_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcShapeModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcShapeRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcShell_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcShellBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSimpleProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RefLatitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefLongitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefElevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LandTitleNumber", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SiteAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RefLatitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefLongitude", new named_type(IFC2X3_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefElevation", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LandTitleNumber", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("SiteAddress", new named_type(IFC2X3_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSite_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSlab_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSlabTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSlabType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SlippageX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SlippageX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSlippageConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcSolidModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("IsAttenuating", new named_type(IFC2X3_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("SoundScale", new named_type(IFC2X3_IfcSoundScaleEnum_type), true)); - attributes.push_back(new entity::attribute("SoundValues", new aggregation_type(aggregation_type::list_type, 1, 8, new named_type(IFC2X3_IfcSoundValue_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("IsAttenuating", new named_type(IFC2X3_IfcBoolean_type), false)); + attributes.push_back(new attribute("SoundScale", new named_type(IFC2X3_IfcSoundScaleEnum_type), true)); + attributes.push_back(new attribute("SoundValues", new aggregation_type(aggregation_type::list_type, 1, 8, new named_type(IFC2X3_IfcSoundValue_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSoundProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SoundLevelTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("Frequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); - attributes.push_back(new entity::attribute("SoundLevelSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SoundLevelTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("Frequency", new named_type(IFC2X3_IfcFrequencyMeasure_type), false)); + attributes.push_back(new attribute("SoundLevelSingleValue", new named_type(IFC2X3_IfcDerivedMeasureValue_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSoundValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("InteriorOrExteriorSpace", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); - attributes.push_back(new entity::attribute("ElevationWithFlooring", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("InteriorOrExteriorSpace", new named_type(IFC2X3_IfcInternalOrExternalEnum_type), false)); + attributes.push_back(new attribute("ElevationWithFlooring", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceHeaterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceHeaterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceHeaterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("SpaceProgramIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("MaxRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("MinRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("RequestedLocation", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); - attributes.push_back(new entity::attribute("StandardRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("SpaceProgramIdentifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("MaxRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("MinRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("RequestedLocation", new named_type(IFC2X3_IfcSpatialStructureElement_type), true)); + attributes.push_back(new attribute("StandardRequiredArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceProgram_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("ApplicableValueRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalLoadSource", new named_type(IFC2X3_IfcThermalLoadSourceEnum_type), false)); - attributes.push_back(new entity::attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); - attributes.push_back(new entity::attribute("SourceDescription", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("MaximumValue", new named_type(IFC2X3_IfcPowerMeasure_type), false)); - attributes.push_back(new entity::attribute("MinimumValue", new named_type(IFC2X3_IfcPowerMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalLoadTimeSeriesValues", new named_type(IFC2X3_IfcTimeSeries_type), true)); - attributes.push_back(new entity::attribute("UserDefinedThermalLoadSource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ThermalLoadType", new named_type(IFC2X3_IfcThermalLoadTypeEnum_type), false)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("ApplicableValueRatio", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ThermalLoadSource", new named_type(IFC2X3_IfcThermalLoadSourceEnum_type), false)); + attributes.push_back(new attribute("PropertySource", new named_type(IFC2X3_IfcPropertySourceEnum_type), false)); + attributes.push_back(new attribute("SourceDescription", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("MaximumValue", new named_type(IFC2X3_IfcPowerMeasure_type), false)); + attributes.push_back(new attribute("MinimumValue", new named_type(IFC2X3_IfcPowerMeasure_type), true)); + attributes.push_back(new attribute("ThermalLoadTimeSeriesValues", new named_type(IFC2X3_IfcTimeSeries_type), true)); + attributes.push_back(new attribute("UserDefinedThermalLoadSource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("UserDefinedPropertySource", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ThermalLoadType", new named_type(IFC2X3_IfcThermalLoadTypeEnum_type), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceThermalLoadProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSpaceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpaceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LongName", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("CompositionType", new named_type(IFC2X3_IfcElementCompositionEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpatialStructureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSpatialStructureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSphere_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStackTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStackTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStackTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ShapeType", new named_type(IFC2X3_IfcStairTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ShapeType", new named_type(IFC2X3_IfcStairTypeEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStair_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("NumberOfRiser", new simple_type(simple_type::integer_type), true)); - attributes.push_back(new entity::attribute("NumberOfTreads", new simple_type(simple_type::integer_type), true)); - attributes.push_back(new entity::attribute("RiserHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TreadLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("NumberOfRiser", new simple_type(simple_type::integer_type), true)); + attributes.push_back(new attribute("NumberOfTreads", new simple_type(simple_type::integer_type), true)); + attributes.push_back(new attribute("RiserHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TreadLength", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStairFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStairFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStairFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStairFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DestabilizingLoad", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("CausedBy", new named_type(IFC2X3_IfcStructuralReaction_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DestabilizingLoad", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("CausedBy", new named_type(IFC2X3_IfcStructuralReaction_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AppliedLoad", new named_type(IFC2X3_IfcStructuralLoad_type), false)); - attributes.push_back(new entity::attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AppliedLoad", new named_type(IFC2X3_IfcStructuralLoad_type), false)); + attributes.push_back(new attribute("GlobalOrLocal", new named_type(IFC2X3_IfcGlobalOrLocalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcAnalysisModelTypeEnum_type), false)); - attributes.push_back(new entity::attribute("OrientationOf2DPlane", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); - attributes.push_back(new entity::attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoadGroup_type)), true)); - attributes.push_back(new entity::attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralResultGroup_type)), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcAnalysisModelTypeEnum_type), false)); + attributes.push_back(new attribute("OrientationOf2DPlane", new named_type(IFC2X3_IfcAxis2Placement3D_type), true)); + attributes.push_back(new attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoadGroup_type)), true)); + attributes.push_back(new attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcStructuralResultGroup_type)), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralAnalysisModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC2X3_IfcBoundaryCondition_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuralConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralCurveConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralCurveTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralCurveTypeEnum_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralCurveMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralCurveMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLinearAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); - attributes.push_back(new entity::attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); + attributes.push_back(new attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLinearActionVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuralLoad_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcLoadGroupTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionType", new named_type(IFC2X3_IfcActionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionSource", new named_type(IFC2X3_IfcActionSourceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Coefficient", new named_type(IFC2X3_IfcRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcLoadGroupTypeEnum_type), false)); + attributes.push_back(new attribute("ActionType", new named_type(IFC2X3_IfcActionTypeEnum_type), false)); + attributes.push_back(new attribute("ActionSource", new named_type(IFC2X3_IfcActionSourceTypeEnum_type), false)); + attributes.push_back(new attribute("Coefficient", new named_type(IFC2X3_IfcRatioMeasure_type), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearForceX", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceY", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceZ", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentX", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentY", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentZ", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearForceX", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceY", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceZ", new named_type(IFC2X3_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentX", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentY", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentZ", new named_type(IFC2X3_IfcLinearMomentMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadLinearForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PlanarForceX", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceY", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceZ", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PlanarForceX", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceY", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceZ", new named_type(IFC2X3_IfcPlanarForceMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadPlanarForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("DisplacementX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRX", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRY", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRZ", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("DisplacementX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRX", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRY", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRZ", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleDisplacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Distortion", new named_type(IFC2X3_IfcCurvatureMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Distortion", new named_type(IFC2X3_IfcCurvatureMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleDisplacementDistortion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("ForceX", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceY", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentX", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentY", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentZ", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("ForceX", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceY", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceZ", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("MomentX", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentY", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentZ", new named_type(IFC2X3_IfcTorqueMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingMoment", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingMoment", new named_type(IFC2X3_IfcWarpingMomentMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadSingleForceWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuralLoadStatic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DeltaT_Constant", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaT_Y", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaT_Z", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DeltaT_Constant", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaT_Y", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaT_Z", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralLoadTemperature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC2X3_IfcProjectedOrTrueLengthEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPlanarAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); - attributes.push_back(new entity::attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VaryingAppliedLoadLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); + attributes.push_back(new attribute("SubsequentAppliedLoads", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcStructuralLoad_type)), false)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPlanarActionVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPointAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPointConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralPointReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(16); - attributes.push_back(new entity::attribute("TorsionalConstantX", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentOfInertiaYZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentOfInertiaY", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentOfInertiaZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); - attributes.push_back(new entity::attribute("WarpingConstant", new named_type(IFC2X3_IfcWarpingConstantMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearCentreZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearCentreY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearDeformationAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearDeformationAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("MaximumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("MinimumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("TorsionalSectionModulus", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(16); + attributes.push_back(new attribute("TorsionalConstantX", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("MomentOfInertiaYZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("MomentOfInertiaY", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("MomentOfInertiaZ", new named_type(IFC2X3_IfcMomentOfInertiaMeasure_type), true)); + attributes.push_back(new attribute("WarpingConstant", new named_type(IFC2X3_IfcWarpingConstantMeasure_type), true)); + attributes.push_back(new attribute("ShearCentreZ", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ShearCentreY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ShearDeformationAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("ShearDeformationAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("MaximumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("MinimumSectionModulusY", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("MaximumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("MinimumSectionModulusZ", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("TorsionalSectionModulus", new named_type(IFC2X3_IfcSectionModulusMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(23); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TheoryType", new named_type(IFC2X3_IfcAnalysisTheoryTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ResultForLoadGroup", new named_type(IFC2X3_IfcStructuralLoadGroup_type), true)); - attributes.push_back(new entity::attribute("IsLinear", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TheoryType", new named_type(IFC2X3_IfcAnalysisTheoryTypeEnum_type), false)); + attributes.push_back(new attribute("ResultForLoadGroup", new named_type(IFC2X3_IfcStructuralLoadGroup_type), true)); + attributes.push_back(new attribute("IsLinear", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralResultGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ShearAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("ShearAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("PlasticShapeFactorY", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PlasticShapeFactorZ", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ShearAreaZ", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("ShearAreaY", new named_type(IFC2X3_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("PlasticShapeFactorY", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("PlasticShapeFactorZ", new named_type(IFC2X3_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(27); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSteelProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSurfaceConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralSurfaceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcStructuralSurfaceTypeEnum_type), false)); + attributes.push_back(new attribute("Thickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSurfaceMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SubsequentThickness", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcPositiveLengthMeasure_type)), false)); - attributes.push_back(new entity::attribute("VaryingThicknessLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SubsequentThickness", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC2X3_IfcPositiveLengthMeasure_type)), false)); + attributes.push_back(new attribute("VaryingThicknessLocation", new named_type(IFC2X3_IfcShapeAspect_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStructuralSurfaceMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcStructuredDimensionCallout_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStyleModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Item", new named_type(IFC2X3_IfcRepresentationItem_type), true)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleAssignment_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Item", new named_type(IFC2X3_IfcRepresentationItem_type), true)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPresentationStyleAssignment_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStyledItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcStyledRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SubContractor", new named_type(IFC2X3_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("JobDescription", new named_type(IFC2X3_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SubContractor", new named_type(IFC2X3_IfcActorSelect_type), true)); + attributes.push_back(new attribute("JobDescription", new named_type(IFC2X3_IfcText_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSubContractResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParentEdge", new named_type(IFC2X3_IfcEdge_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParentEdge", new named_type(IFC2X3_IfcEdge_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSubedge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("ReferenceSurface", new named_type(IFC2X3_IfcSurface_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("ReferenceSurface", new named_type(IFC2X3_IfcSurface_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceCurveSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceOfLinearExtrusion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AxisPosition", new named_type(IFC2X3_IfcAxis1Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AxisPosition", new named_type(IFC2X3_IfcAxis1Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceOfRevolution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Side", new named_type(IFC2X3_IfcSurfaceSide_type), false)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC2X3_IfcSurfaceStyleElementSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Side", new named_type(IFC2X3_IfcSurfaceSide_type), false)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC2X3_IfcSurfaceStyleElementSelect_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("DiffuseReflectionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("ReflectanceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("DiffuseReflectionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + attributes.push_back(new attribute("ReflectanceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyleLighting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RefractionIndex", new named_type(IFC2X3_IfcReal_type), true)); - attributes.push_back(new entity::attribute("DispersionFactor", new named_type(IFC2X3_IfcReal_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RefractionIndex", new named_type(IFC2X3_IfcReal_type), true)); + attributes.push_back(new attribute("DispersionFactor", new named_type(IFC2X3_IfcReal_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyleRefraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Transparency", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("DiffuseColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("ReflectionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularHighlight", new named_type(IFC2X3_IfcSpecularHighlightSelect_type), true)); - attributes.push_back(new entity::attribute("ReflectanceMethod", new named_type(IFC2X3_IfcReflectanceMethodEnum_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Transparency", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("DiffuseColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("ReflectionColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularColour", new named_type(IFC2X3_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularHighlight", new named_type(IFC2X3_IfcSpecularHighlightSelect_type), true)); + attributes.push_back(new attribute("ReflectanceMethod", new named_type(IFC2X3_IfcReflectanceMethodEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceStyleRendering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SurfaceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SurfaceColour", new named_type(IFC2X3_IfcColourRgb_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcSurfaceStyleShading_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSurfaceTexture_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSurfaceTexture_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcSurfaceStyleWithTextures_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RepeatS", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("RepeatT", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("TextureType", new named_type(IFC2X3_IfcSurfaceTextureEnum_type), false)); - attributes.push_back(new entity::attribute("TextureTransform", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RepeatS", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("RepeatT", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("TextureType", new named_type(IFC2X3_IfcSurfaceTextureEnum_type), false)); + attributes.push_back(new attribute("TextureTransform", new named_type(IFC2X3_IfcCartesianTransformationOperator2D_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSurfaceTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptArea", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptArea", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Directrix", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("StartParam", new named_type(IFC2X3_IfcParameterValue_type), false)); + attributes.push_back(new attribute("EndParam", new named_type(IFC2X3_IfcParameterValue_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSweptDiskSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptCurve", new named_type(IFC2X3_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptCurve", new named_type(IFC2X3_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC2X3_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSweptSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcSwitchingDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcSwitchingDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSwitchingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("StyleOfSymbol", new named_type(IFC2X3_IfcSymbolStyleSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("StyleOfSymbol", new named_type(IFC2X3_IfcSymbolStyleSelect_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSymbolStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcSystemFurnitureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("WebEdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("WebSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInY", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new simple_type(simple_type::string_type), false)); - attributes.push_back(new entity::attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTableRow_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new simple_type(simple_type::string_type), false)); + attributes.push_back(new attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTableRow_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTable_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("IsHeading", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + attributes.push_back(new attribute("IsHeading", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTableRow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTankTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTankTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTankType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("TaskId", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("WorkMethod", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("IsMilestone", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Priority", new simple_type(simple_type::integer_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("TaskId", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Status", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("WorkMethod", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("IsMilestone", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Priority", new simple_type(simple_type::integer_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTask_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PagerNumber", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("WWWHomePageURL", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("PagerNumber", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcLabel_type)), true)); + attributes.push_back(new attribute("WWWHomePageURL", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTelecomAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTendonTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("TensionForce", new named_type(IFC2X3_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PreStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("FrictionCoefficient", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("AnchorageSlip", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MinCurvatureRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTendonTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC2X3_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("TensionForce", new named_type(IFC2X3_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("PreStress", new named_type(IFC2X3_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("FrictionCoefficient", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("AnchorageSlip", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MinCurvatureRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTendon_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTendonAnchor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AnnotatedCurve", new named_type(IFC2X3_IfcAnnotationCurveOccurrence_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AnnotatedCurve", new named_type(IFC2X3_IfcAnnotationCurveOccurrence_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTerminatorSymbol_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Literal", new named_type(IFC2X3_IfcPresentableText_type), false)); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("Path", new named_type(IFC2X3_IfcTextPath_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Literal", new named_type(IFC2X3_IfcPresentableText_type), false)); + attributes.push_back(new attribute("Placement", new named_type(IFC2X3_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("Path", new named_type(IFC2X3_IfcTextPath_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextLiteral_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Extent", new named_type(IFC2X3_IfcPlanarExtent_type), false)); - attributes.push_back(new entity::attribute("BoxAlignment", new named_type(IFC2X3_IfcBoxAlignment_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Extent", new named_type(IFC2X3_IfcPlanarExtent_type), false)); + attributes.push_back(new attribute("BoxAlignment", new named_type(IFC2X3_IfcBoxAlignment_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextLiteralWithExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TextCharacterAppearance", new named_type(IFC2X3_IfcCharacterStyleSelect_type), true)); - attributes.push_back(new entity::attribute("TextStyle", new named_type(IFC2X3_IfcTextStyleSelect_type), true)); - attributes.push_back(new entity::attribute("TextFontStyle", new named_type(IFC2X3_IfcTextFontSelect_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TextCharacterAppearance", new named_type(IFC2X3_IfcCharacterStyleSelect_type), true)); + attributes.push_back(new attribute("TextStyle", new named_type(IFC2X3_IfcTextStyleSelect_type), true)); + attributes.push_back(new attribute("TextFontStyle", new named_type(IFC2X3_IfcTextFontSelect_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTextFontName_type)), true)); - attributes.push_back(new entity::attribute("FontStyle", new named_type(IFC2X3_IfcFontStyle_type), true)); - attributes.push_back(new entity::attribute("FontVariant", new named_type(IFC2X3_IfcFontVariant_type), true)); - attributes.push_back(new entity::attribute("FontWeight", new named_type(IFC2X3_IfcFontWeight_type), true)); - attributes.push_back(new entity::attribute("FontSize", new named_type(IFC2X3_IfcSizeSelect_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcTextFontName_type)), true)); + attributes.push_back(new attribute("FontStyle", new named_type(IFC2X3_IfcFontStyle_type), true)); + attributes.push_back(new attribute("FontVariant", new named_type(IFC2X3_IfcFontVariant_type), true)); + attributes.push_back(new attribute("FontWeight", new named_type(IFC2X3_IfcFontWeight_type), true)); + attributes.push_back(new attribute("FontSize", new named_type(IFC2X3_IfcSizeSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleFontModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Colour", new named_type(IFC2X3_IfcColour_type), false)); - attributes.push_back(new entity::attribute("BackgroundColour", new named_type(IFC2X3_IfcColour_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Colour", new named_type(IFC2X3_IfcColour_type), false)); + attributes.push_back(new attribute("BackgroundColour", new named_type(IFC2X3_IfcColour_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleForDefinedFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("TextIndent", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextAlign", new named_type(IFC2X3_IfcTextAlignment_type), true)); - attributes.push_back(new entity::attribute("TextDecoration", new named_type(IFC2X3_IfcTextDecoration_type), true)); - attributes.push_back(new entity::attribute("LetterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("WordSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextTransform", new named_type(IFC2X3_IfcTextTransformation_type), true)); - attributes.push_back(new entity::attribute("LineHeight", new named_type(IFC2X3_IfcSizeSelect_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("TextIndent", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextAlign", new named_type(IFC2X3_IfcTextAlignment_type), true)); + attributes.push_back(new attribute("TextDecoration", new named_type(IFC2X3_IfcTextDecoration_type), true)); + attributes.push_back(new attribute("LetterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("WordSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextTransform", new named_type(IFC2X3_IfcTextTransformation_type), true)); + attributes.push_back(new attribute("LineHeight", new named_type(IFC2X3_IfcSizeSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleTextModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("BoxHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BoxWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BoxSlantAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("BoxRotateAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CharacterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("BoxHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BoxWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BoxSlantAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("BoxRotateAngle", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CharacterSpacing", new named_type(IFC2X3_IfcSizeSelect_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextStyleWithBoxCharacteristics_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcTextureCoordinate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Mode", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSimpleValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Mode", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcSimpleValue_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTextureCoordinateGenerator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TextureMaps", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcVertexBasedTextureMap_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TextureMaps", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcVertexBasedTextureMap_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcParameterValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcParameterValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcTextureVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); - attributes.push_back(new entity::attribute("BoilingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("FreezingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("ThermalConductivity", new named_type(IFC2X3_IfcThermalConductivityMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("SpecificHeatCapacity", new named_type(IFC2X3_IfcSpecificHeatCapacityMeasure_type), true)); + attributes.push_back(new attribute("BoilingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("FreezingPoint", new named_type(IFC2X3_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("ThermalConductivity", new named_type(IFC2X3_IfcThermalConductivityMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcThermalMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC2X3_IfcText_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("EndTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("TimeSeriesDataType", new named_type(IFC2X3_IfcTimeSeriesDataTypeEnum_type), false)); - attributes.push_back(new entity::attribute("DataOrigin", new named_type(IFC2X3_IfcDataOriginEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedDataOrigin", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Name", new named_type(IFC2X3_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC2X3_IfcText_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("EndTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("TimeSeriesDataType", new named_type(IFC2X3_IfcTimeSeriesDataTypeEnum_type), false)); + attributes.push_back(new attribute("DataOrigin", new named_type(IFC2X3_IfcDataOriginEnum_type), false)); + attributes.push_back(new attribute("UserDefinedDataOrigin", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC2X3_IfcUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ReferencedTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); - attributes.push_back(new entity::attribute("TimeSeriesReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ReferencedTimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); + attributes.push_back(new attribute("TimeSeriesReferences", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcDocumentSelect_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTimeSeriesReferenceRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ApplicableDates", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcDateTimeSelect_type)), true)); - attributes.push_back(new entity::attribute("TimeSeriesScheduleType", new named_type(IFC2X3_IfcTimeSeriesScheduleTypeEnum_type), false)); - attributes.push_back(new entity::attribute("TimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ApplicableDates", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcDateTimeSelect_type)), true)); + attributes.push_back(new attribute("TimeSeriesScheduleType", new named_type(IFC2X3_IfcTimeSeriesScheduleTypeEnum_type), false)); + attributes.push_back(new attribute("TimeSeries", new named_type(IFC2X3_IfcTimeSeries_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTimeSeriesSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcTopologicalRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTopologyRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTransformerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTransformerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTransformerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), true)); - attributes.push_back(new entity::attribute("CapacityByWeight", new named_type(IFC2X3_IfcMassMeasure_type), true)); - attributes.push_back(new entity::attribute("CapacityByNumber", new named_type(IFC2X3_IfcCountMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), true)); + attributes.push_back(new attribute("CapacityByWeight", new named_type(IFC2X3_IfcMassMeasure_type), true)); + attributes.push_back(new attribute("CapacityByNumber", new named_type(IFC2X3_IfcCountMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTransportElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTransportElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTransportElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BottomXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXOffset", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BottomXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXOffset", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTrapeziumProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("SenseAgreement", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("MasterRepresentation", new named_type(IFC2X3_IfcTrimmingPreference_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC2X3_IfcCurve_type), false)); + attributes.push_back(new attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC2X3_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("SenseAgreement", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("MasterRepresentation", new named_type(IFC2X3_IfcTrimmingPreference_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTrimmedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcTubeBundleTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcTubeBundleTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTubeBundleType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SecondRepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SecondRepeatFactor", new named_type(IFC2X3_IfcVector_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTwoDirectionRepeatFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ApplicableOccurrence", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPropertySetDefinition_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ApplicableOccurrence", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPropertySetDefinition_type)), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTypeObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentationMap_type)), true)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC2X3_IfcRepresentationMap_type)), true)); + attributes.push_back(new attribute("Tag", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcTypeProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC2X3_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("CentreOfGravityInX", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcUShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcUnit_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcUnit_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcUnitAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcUnitaryEquipmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcUnitaryEquipmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcUnitaryEquipmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcValveTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcValveTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcValveType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Magnitude", new named_type(IFC2X3_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Orientation", new named_type(IFC2X3_IfcDirection_type), false)); + attributes.push_back(new attribute("Magnitude", new named_type(IFC2X3_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVector_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC2X3_IfcVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TextureVertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcTextureVertex_type)), false)); - attributes.push_back(new entity::attribute("TexturePoints", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TextureVertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcTextureVertex_type)), false)); + attributes.push_back(new attribute("TexturePoints", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC2X3_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVertexBasedTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LoopVertex", new named_type(IFC2X3_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LoopVertex", new named_type(IFC2X3_IfcVertex_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcVertexLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("VertexGeometry", new named_type(IFC2X3_IfcPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("VertexGeometry", new named_type(IFC2X3_IfcPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC2X3_IfcVertexPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcVibrationIsolatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcVibrationIsolatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVibrationIsolatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVirtualElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC2X3_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC2X3_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC2X3_IfcVirtualGridIntersection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWallStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC2X3_IfcWasteTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC2X3_IfcWasteTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWasteTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("IsPotable", new simple_type(simple_type::boolean_type), true)); - attributes.push_back(new entity::attribute("Hardness", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); - attributes.push_back(new entity::attribute("AlkalinityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); - attributes.push_back(new entity::attribute("AcidityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); - attributes.push_back(new entity::attribute("ImpuritiesContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PHLevel", new named_type(IFC2X3_IfcPHMeasure_type), true)); - attributes.push_back(new entity::attribute("DissolvedSolidsContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("IsPotable", new simple_type(simple_type::boolean_type), true)); + attributes.push_back(new attribute("Hardness", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); + attributes.push_back(new attribute("AlkalinityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); + attributes.push_back(new attribute("AcidityConcentration", new named_type(IFC2X3_IfcIonConcentrationMeasure_type), true)); + attributes.push_back(new attribute("ImpuritiesContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("PHLevel", new named_type(IFC2X3_IfcPHMeasure_type), true)); + attributes.push_back(new attribute("DissolvedSolidsContent", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWaterProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MullionThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MullionThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FirstTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondTransomOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("FirstMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondMullionOffset", new named_type(IFC2X3_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindowLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcWindowPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcWindowPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC2X3_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC2X3_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindowPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC2X3_IfcWindowStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC2X3_IfcWindowStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC2X3_IfcWindowStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("OperationType", new named_type(IFC2X3_IfcWindowStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new simple_type(simple_type::boolean_type), false)); + attributes.push_back(new attribute("Sizeable", new simple_type(simple_type::boolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWindowStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Duration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); - attributes.push_back(new entity::attribute("FinishTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); - attributes.push_back(new entity::attribute("WorkControlType", new named_type(IFC2X3_IfcWorkControlTypeEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedControlType", new named_type(IFC2X3_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("Identifier", new named_type(IFC2X3_IfcIdentifier_type), false)); + attributes.push_back(new attribute("CreationDate", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC2X3_IfcPerson_type)), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC2X3_IfcLabel_type), true)); + attributes.push_back(new attribute("Duration", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC2X3_IfcTimeMeasure_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC2X3_IfcDateTimeSelect_type), false)); + attributes.push_back(new attribute("FinishTime", new named_type(IFC2X3_IfcDateTimeSelect_type), true)); + attributes.push_back(new attribute("WorkControlType", new named_type(IFC2X3_IfcWorkControlTypeEnum_type), true)); + attributes.push_back(new attribute("UserDefinedControlType", new named_type(IFC2X3_IfcLabel_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWorkControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWorkPlan_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcWorkSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC2X3_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcZShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC2X3_IfcZone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsActingUpon", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToActor_type, IFC2X3_IfcRelAssignsToActor_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsActingUpon", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToActor_type, IFC2X3_IfcRelAssignsToActor_type->attributes()[0])); IFC2X3_IfcActor_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("OfPerson", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPerson_type, IFC2X3_IfcPerson_type->attributes()[7])); - attributes.push_back(new entity::inverse_attribute("OfOrganization", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganization_type, IFC2X3_IfcOrganization_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("OfPerson", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPerson_type, IFC2X3_IfcPerson_type->attributes()[7])); + attributes.push_back(new inverse_attribute("OfOrganization", inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganization_type, IFC2X3_IfcOrganization_type->attributes()[4])); IFC2X3_IfcAddress_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC2X3_IfcAnnotation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ValuesReferenced", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcReferencesValueDocument_type, IFC2X3_IfcReferencesValueDocument_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ValueOfComponents", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsComponentIn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ValuesReferenced", inverse_attribute::set_type, 0, -1, IFC2X3_IfcReferencesValueDocument_type, IFC2X3_IfcReferencesValueDocument_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ValueOfComponents", inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsComponentIn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcAppliedValueRelationship_type, IFC2X3_IfcAppliedValueRelationship_type->attributes()[1])); IFC2X3_IfcAppliedValue_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("Actors", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalActorRelationship_type, IFC2X3_IfcApprovalActorRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("Actors", inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalActorRelationship_type, IFC2X3_IfcApprovalActorRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC2X3_IfcApprovalRelationship_type, IFC2X3_IfcApprovalRelationship_type->attributes()[1])); IFC2X3_IfcApproval_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Contains", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcClassificationItem_type, IFC2X3_IfcClassificationItem_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Contains", inverse_attribute::set_type, 0, -1, IFC2X3_IfcClassificationItem_type, IFC2X3_IfcClassificationItem_type->attributes()[1])); IFC2X3_IfcClassification_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsClassifiedItemIn", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsClassifyingItemIn", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsClassifiedItemIn", inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsClassifyingItemIn", inverse_attribute::set_type, 0, 1, IFC2X3_IfcClassificationItemRelationship_type, IFC2X3_IfcClassificationItemRelationship_type->attributes()[0])); IFC2X3_IfcClassificationItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("UsingCurves", entity::inverse_attribute::set_type, 1, -1, IFC2X3_IfcCompositeCurve_type, IFC2X3_IfcCompositeCurve_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("UsingCurves", inverse_attribute::set_type, 1, -1, IFC2X3_IfcCompositeCurve_type, IFC2X3_IfcCompositeCurve_type->attributes()[0])); IFC2X3_IfcCompositeCurveSegment_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::inverse_attribute("ClassifiedAs", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintClassificationRelationship_type, IFC2X3_IfcConstraintClassificationRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("RelatesConstraints", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("PropertiesForConstraint", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyConstraintRelationship_type, IFC2X3_IfcPropertyConstraintRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Aggregates", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("IsAggregatedIn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[3])); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new inverse_attribute("ClassifiedAs", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintClassificationRelationship_type, IFC2X3_IfcConstraintClassificationRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("RelatesConstraints", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[2])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintRelationship_type, IFC2X3_IfcConstraintRelationship_type->attributes()[3])); + attributes.push_back(new inverse_attribute("PropertiesForConstraint", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyConstraintRelationship_type, IFC2X3_IfcPropertyConstraintRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Aggregates", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[2])); + attributes.push_back(new inverse_attribute("IsAggregatedIn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcConstraintAggregationRelationship_type, IFC2X3_IfcConstraintAggregationRelationship_type->attributes()[3])); IFC2X3_IfcConstraint_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Controls", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToControl_type, IFC2X3_IfcRelAssignsToControl_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Controls", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToControl_type, IFC2X3_IfcRelAssignsToControl_type->attributes()[0])); IFC2X3_IfcControl_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("CoversSpaces", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("Covers", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("CoversSpaces", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[1])); + attributes.push_back(new inverse_attribute("Covers", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[1])); IFC2X3_IfcCovering_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AnnotatedBySymbols", entity::inverse_attribute::set_type, 0, 2, IFC2X3_IfcTerminatorSymbol_type, IFC2X3_IfcTerminatorSymbol_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AnnotatedBySymbols", inverse_attribute::set_type, 0, 2, IFC2X3_IfcTerminatorSymbol_type, IFC2X3_IfcTerminatorSymbol_type->attributes()[0])); IFC2X3_IfcDimensionCurve_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToFlowElement", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToFlowElement", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[0])); IFC2X3_IfcDistributionControlElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasControlElements", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasControlElements", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFlowControlElements_type, IFC2X3_IfcRelFlowControlElements_type->attributes()[1])); IFC2X3_IfcDistributionFlowElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsPointedTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPointer", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsPointedTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPointer", inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformationRelationship_type, IFC2X3_IfcDocumentInformationRelationship_type->attributes()[0])); IFC2X3_IfcDocumentInformation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferenceToDocument", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformation_type, IFC2X3_IfcDocumentInformation_type->attributes()[3])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferenceToDocument", inverse_attribute::set_type, 0, 1, IFC2X3_IfcDocumentInformation_type, IFC2X3_IfcDocumentInformation_type->attributes()[3])); IFC2X3_IfcDocumentReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsRelatedFromCallout", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("IsRelatedToCallout", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsRelatedFromCallout", inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[3])); + attributes.push_back(new inverse_attribute("IsRelatedToCallout", inverse_attribute::set_type, 0, -1, IFC2X3_IfcDraughtingCalloutRelationship_type, IFC2X3_IfcDraughtingCalloutRelationship_type->attributes()[2])); IFC2X3_IfcDraughtingCallout_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::inverse_attribute("HasStructuralMember", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("FillsVoids", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasProjections", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedInStructures", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasPorts", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasOpenings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsConnectionRealization", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsWithRealizingElements_type, IFC2X3_IfcRelConnectsWithRealizingElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ProvidesBoundaries", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new inverse_attribute("HasStructuralMember", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("FillsVoids", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversBldgElements_type, IFC2X3_IfcRelCoversBldgElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasProjections", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedInStructures", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasPorts", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasOpenings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsConnectionRealization", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsWithRealizingElements_type, IFC2X3_IfcRelConnectsWithRealizingElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ProvidesBoundaries", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsElements_type, IFC2X3_IfcRelConnectsElements_type->attributes()[2])); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC2X3_IfcElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ProjectsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ProjectsElements", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelProjectsElement_type, IFC2X3_IfcRelProjectsElement_type->attributes()[1])); IFC2X3_IfcFeatureElementAddition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("VoidsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("VoidsElements", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelVoidsElement_type, IFC2X3_IfcRelVoidsElement_type->attributes()[1])); IFC2X3_IfcFeatureElementSubtraction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasSubContexts", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcGeometricRepresentationSubContext_type, IFC2X3_IfcGeometricRepresentationSubContext_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasSubContexts", inverse_attribute::set_type, 0, -1, IFC2X3_IfcGeometricRepresentationSubContext_type, IFC2X3_IfcGeometricRepresentationSubContext_type->attributes()[0])); IFC2X3_IfcGeometricRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC2X3_IfcGrid_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("PartOfW", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("PartOfV", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfU", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasIntersections", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcVirtualGridIntersection_type, IFC2X3_IfcVirtualGridIntersection_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("PartOfW", inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[2])); + attributes.push_back(new inverse_attribute("PartOfV", inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfU", inverse_attribute::set_type, 0, 1, IFC2X3_IfcGrid_type, IFC2X3_IfcGrid_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasIntersections", inverse_attribute::set_type, 0, -1, IFC2X3_IfcVirtualGridIntersection_type, IFC2X3_IfcVirtualGridIntersection_type->attributes()[0])); IFC2X3_IfcGridAxis_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsGroupedBy", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsToGroup_type, IFC2X3_IfcRelAssignsToGroup_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsGroupedBy", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsToGroup_type, IFC2X3_IfcRelAssignsToGroup_type->attributes()[0])); IFC2X3_IfcGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferenceIntoLibrary", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcLibraryInformation_type, IFC2X3_IfcLibraryInformation_type->attributes()[4])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferenceIntoLibrary", inverse_attribute::set_type, 0, 1, IFC2X3_IfcLibraryInformation_type, IFC2X3_IfcLibraryInformation_type->attributes()[4])); IFC2X3_IfcLibraryReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasRepresentation", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialDefinitionRepresentation_type, IFC2X3_IfcMaterialDefinitionRepresentation_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ClassifiedAs", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialClassificationRelationship_type, IFC2X3_IfcMaterialClassificationRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasRepresentation", inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialDefinitionRepresentation_type, IFC2X3_IfcMaterialDefinitionRepresentation_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ClassifiedAs", inverse_attribute::set_type, 0, 1, IFC2X3_IfcMaterialClassificationRelationship_type, IFC2X3_IfcMaterialClassificationRelationship_type->attributes()[1])); IFC2X3_IfcMaterial_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialLayerSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcMaterialLayerSet_type, IFC2X3_IfcMaterialLayerSet_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialLayerSet", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcMaterialLayerSet_type, IFC2X3_IfcMaterialLayerSet_type->attributes()[0])); IFC2X3_IfcMaterialLayer_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDefines_type, IFC2X3_IfcRelDefines_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDefines_type, IFC2X3_IfcRelDefines_type->attributes()[0])); IFC2X3_IfcObject_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("HasAssignments", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssigns_type, IFC2X3_IfcRelAssigns_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsDecomposedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Decomposes", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("HasAssignments", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssigns_type, IFC2X3_IfcRelAssigns_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsDecomposedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Decomposes", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDecomposes_type, IFC2X3_IfcRelDecomposes_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); IFC2X3_IfcObjectDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PlacesObject", entity::inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedByPlacements", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcLocalPlacement_type, IFC2X3_IfcLocalPlacement_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PlacesObject", inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedByPlacements", inverse_attribute::set_type, 0, -1, IFC2X3_IfcLocalPlacement_type, IFC2X3_IfcLocalPlacement_type->attributes()[0])); IFC2X3_IfcObjectPlacement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasFillings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasFillings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelFillsElement_type, IFC2X3_IfcRelFillsElement_type->attributes()[0])); IFC2X3_IfcOpeningElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("IsRelatedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("Engages", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("IsRelatedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[3])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC2X3_IfcOrganizationRelationship_type, IFC2X3_IfcOrganizationRelationship_type->attributes()[2])); + attributes.push_back(new inverse_attribute("Engages", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[1])); IFC2X3_IfcOrganization_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("EngagedIn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("EngagedIn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPersonAndOrganization_type, IFC2X3_IfcPersonAndOrganization_type->attributes()[0])); IFC2X3_IfcPerson_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcPhysicalComplexQuantity_type, IFC2X3_IfcPhysicalComplexQuantity_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, 1, IFC2X3_IfcPhysicalComplexQuantity_type, IFC2X3_IfcPhysicalComplexQuantity_type->attributes()[0])); IFC2X3_IfcPhysicalQuantity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ContainedIn", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ContainedIn", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsPortToElement_type, IFC2X3_IfcRelConnectsPortToElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelConnectsPorts_type, IFC2X3_IfcRelConnectsPorts_type->attributes()[0])); IFC2X3_IfcPort_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("OperatesOn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProcess_type, IFC2X3_IfcRelAssignsToProcess_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsSuccessorFrom", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPredecessorTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("OperatesOn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProcess_type, IFC2X3_IfcRelAssignsToProcess_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsSuccessorFrom", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPredecessorTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSequence_type, IFC2X3_IfcRelSequence_type->attributes()[0])); IFC2X3_IfcProcess_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferencedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProduct_type, IFC2X3_IfcRelAssignsToProduct_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferencedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToProduct_type, IFC2X3_IfcRelAssignsToProduct_type->attributes()[0])); IFC2X3_IfcProduct_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ShapeOfProduct", entity::inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasShapeAspects", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ShapeOfProduct", inverse_attribute::set_type, 1, 1, IFC2X3_IfcProduct_type, IFC2X3_IfcProduct_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasShapeAspects", inverse_attribute::set_type, 0, -1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[4])); IFC2X3_IfcProductDefinitionShape_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("PropertyForDependance", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("PropertyDependsOn", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcComplexProperty_type, IFC2X3_IfcComplexProperty_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("PropertyForDependance", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("PropertyDependsOn", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPropertyDependencyRelationship_type, IFC2X3_IfcPropertyDependencyRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, 1, IFC2X3_IfcComplexProperty_type, IFC2X3_IfcComplexProperty_type->attributes()[1])); IFC2X3_IfcProperty_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssociates_type, IFC2X3_IfcRelAssociates_type->attributes()[0])); IFC2X3_IfcPropertyDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PropertyDefinitionOf", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByProperties_type, IFC2X3_IfcRelDefinesByProperties_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("DefinesType", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcTypeObject_type, IFC2X3_IfcTypeObject_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PropertyDefinitionOf", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByProperties_type, IFC2X3_IfcRelDefinesByProperties_type->attributes()[0])); + attributes.push_back(new inverse_attribute("DefinesType", inverse_attribute::set_type, 0, 1, IFC2X3_IfcTypeObject_type, IFC2X3_IfcTypeObject_type->attributes()[1])); IFC2X3_IfcPropertySetDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("RepresentationMap", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRepresentationMap_type, IFC2X3_IfcRepresentationMap_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LayerAssignments", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("OfProductRepresentation", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcProductRepresentation_type, IFC2X3_IfcProductRepresentation_type->attributes()[2])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("RepresentationMap", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRepresentationMap_type, IFC2X3_IfcRepresentationMap_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LayerAssignments", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("OfProductRepresentation", inverse_attribute::set_type, 0, 1, IFC2X3_IfcProductRepresentation_type, IFC2X3_IfcProductRepresentation_type->attributes()[2])); IFC2X3_IfcRepresentation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("RepresentationsInContext", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRepresentation_type, IFC2X3_IfcRepresentation_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("RepresentationsInContext", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRepresentation_type, IFC2X3_IfcRepresentation_type->attributes()[0])); IFC2X3_IfcRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("LayerAssignments", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("StyledByItem", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcStyledItem_type, IFC2X3_IfcStyledItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("LayerAssignments", inverse_attribute::set_type, 0, -1, IFC2X3_IfcPresentationLayerAssignment_type, IFC2X3_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("StyledByItem", inverse_attribute::set_type, 0, 1, IFC2X3_IfcStyledItem_type, IFC2X3_IfcStyledItem_type->attributes()[0])); IFC2X3_IfcRepresentationItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("MapUsage", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcMappedItem_type, IFC2X3_IfcMappedItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("MapUsage", inverse_attribute::set_type, 0, -1, IFC2X3_IfcMappedItem_type, IFC2X3_IfcMappedItem_type->attributes()[0])); IFC2X3_IfcRepresentationMap_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResourceOf", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToResource_type, IFC2X3_IfcRelAssignsToResource_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResourceOf", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelAssignsToResource_type, IFC2X3_IfcRelAssignsToResource_type->attributes()[0])); IFC2X3_IfcResource_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ScheduleTimeControlAssigned", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsTasks_type, IFC2X3_IfcRelAssignsTasks_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ScheduleTimeControlAssigned", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelAssignsTasks_type, IFC2X3_IfcRelAssignsTasks_type->attributes()[0])); IFC2X3_IfcScheduleTimeControl_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OfShapeAspect", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OfShapeAspect", inverse_attribute::set_type, 0, 1, IFC2X3_IfcShapeAspect_type, IFC2X3_IfcShapeAspect_type->attributes()[0])); IFC2X3_IfcShapeModel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("BoundedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelCoversSpaces_type, IFC2X3_IfcRelCoversSpaces_type->attributes()[0])); + attributes.push_back(new inverse_attribute("BoundedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelSpaceBoundary_type, IFC2X3_IfcRelSpaceBoundary_type->attributes()[0])); IFC2X3_IfcSpace_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasInteractionReqsFrom", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[3])); - attributes.push_back(new entity::inverse_attribute("HasInteractionReqsTo", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasInteractionReqsFrom", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[3])); + attributes.push_back(new inverse_attribute("HasInteractionReqsTo", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelInteractionRequirements_type, IFC2X3_IfcRelInteractionRequirements_type->attributes()[4])); IFC2X3_IfcSpaceProgram_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ReferencesElements", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ServicedBySystems", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ContainsElements", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ReferencesElements", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelReferencedInSpatialStructure_type, IFC2X3_IfcRelReferencedInSpatialStructure_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ServicedBySystems", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ContainsElements", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelContainedInSpatialStructure_type, IFC2X3_IfcRelContainedInSpatialStructure_type->attributes()[1])); IFC2X3_IfcSpatialStructureElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToStructuralItem", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToStructuralItem", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[1])); IFC2X3_IfcStructuralActivity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ConnectsStructuralMembers", entity::inverse_attribute::set_type, 1, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ConnectsStructuralMembers", inverse_attribute::set_type, 1, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[1])); IFC2X3_IfcStructuralConnection_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedStructuralActivity", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedStructuralActivity", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralActivity_type, IFC2X3_IfcRelConnectsStructuralActivity_type->attributes()[0])); IFC2X3_IfcStructuralItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("SourceOfResultGroup", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralResultGroup_type, IFC2X3_IfcStructuralResultGroup_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LoadGroupFor", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("SourceOfResultGroup", inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralResultGroup_type, IFC2X3_IfcStructuralResultGroup_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LoadGroupFor", inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[2])); IFC2X3_IfcStructuralLoadGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ReferencesElement", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedBy", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ReferencesElement", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralElement_type, IFC2X3_IfcRelConnectsStructuralElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedBy", inverse_attribute::set_type, 0, -1, IFC2X3_IfcRelConnectsStructuralMember_type, IFC2X3_IfcRelConnectsStructuralMember_type->attributes()[0])); IFC2X3_IfcStructuralMember_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Causes", entity::inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAction_type, IFC2X3_IfcStructuralAction_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Causes", inverse_attribute::set_type, 0, -1, IFC2X3_IfcStructuralAction_type, IFC2X3_IfcStructuralAction_type->attributes()[1])); IFC2X3_IfcStructuralReaction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResultGroupFor", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[3])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResultGroupFor", inverse_attribute::set_type, 0, 1, IFC2X3_IfcStructuralAnalysisModel_type, IFC2X3_IfcStructuralAnalysisModel_type->attributes()[3])); IFC2X3_IfcStructuralResultGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ServicesBuildings", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ServicesBuildings", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelServicesBuildings_type, IFC2X3_IfcRelServicesBuildings_type->attributes()[0])); IFC2X3_IfcSystem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OfTable", entity::inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcTable_type, IFC2X3_IfcTable_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OfTable", inverse_attribute::unspecified_type, -1, -1, IFC2X3_IfcTable_type, IFC2X3_IfcTable_type->attributes()[1])); IFC2X3_IfcTableRow_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AnnotatedSurface", entity::inverse_attribute::set_type, 1, 1, IFC2X3_IfcAnnotationSurface_type, IFC2X3_IfcAnnotationSurface_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AnnotatedSurface", inverse_attribute::set_type, 1, 1, IFC2X3_IfcAnnotationSurface_type, IFC2X3_IfcAnnotationSurface_type->attributes()[1])); IFC2X3_IfcTextureCoordinate_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("DocumentedBy", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcTimeSeriesReferenceRelationship_type, IFC2X3_IfcTimeSeriesReferenceRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("DocumentedBy", inverse_attribute::set_type, 0, 1, IFC2X3_IfcTimeSeriesReferenceRelationship_type, IFC2X3_IfcTimeSeriesReferenceRelationship_type->attributes()[0])); IFC2X3_IfcTimeSeries_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ObjectTypeOf", entity::inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByType_type, IFC2X3_IfcRelDefinesByType_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ObjectTypeOf", inverse_attribute::set_type, 0, 1, IFC2X3_IfcRelDefinesByType_type, IFC2X3_IfcRelDefinesByType_type->attributes()[0])); IFC2X3_IfcTypeObject_type->set_inverse_attributes(attributes); } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_Ifc2DCompositeCurve_type); + IFC2X3_IfcCompositeCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(15); + defs.push_back(IFC2X3_IfcActionRequest_type);defs.push_back(IFC2X3_IfcConditionCriterion_type);defs.push_back(IFC2X3_IfcCostItem_type);defs.push_back(IFC2X3_IfcCostSchedule_type);defs.push_back(IFC2X3_IfcEquipmentStandard_type);defs.push_back(IFC2X3_IfcFurnitureStandard_type);defs.push_back(IFC2X3_IfcPerformanceHistory_type);defs.push_back(IFC2X3_IfcPermit_type);defs.push_back(IFC2X3_IfcProjectOrder_type);defs.push_back(IFC2X3_IfcProjectOrderRecord_type);defs.push_back(IFC2X3_IfcScheduleTimeControl_type);defs.push_back(IFC2X3_IfcServiceLife_type);defs.push_back(IFC2X3_IfcSpaceProgram_type);defs.push_back(IFC2X3_IfcTimeSeriesSchedule_type);defs.push_back(IFC2X3_IfcWorkControl_type); + IFC2X3_IfcControl_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcActor_type);defs.push_back(IFC2X3_IfcControl_type);defs.push_back(IFC2X3_IfcGroup_type);defs.push_back(IFC2X3_IfcProcess_type);defs.push_back(IFC2X3_IfcProduct_type);defs.push_back(IFC2X3_IfcProject_type);defs.push_back(IFC2X3_IfcResource_type); + IFC2X3_IfcObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcActuatorType_type);defs.push_back(IFC2X3_IfcAlarmType_type);defs.push_back(IFC2X3_IfcControllerType_type);defs.push_back(IFC2X3_IfcFlowInstrumentType_type);defs.push_back(IFC2X3_IfcSensorType_type); + IFC2X3_IfcDistributionControlElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcAirTerminalBoxType_type);defs.push_back(IFC2X3_IfcDamperType_type);defs.push_back(IFC2X3_IfcElectricTimeControlType_type);defs.push_back(IFC2X3_IfcFlowMeterType_type);defs.push_back(IFC2X3_IfcProtectiveDeviceType_type);defs.push_back(IFC2X3_IfcSwitchingDeviceType_type);defs.push_back(IFC2X3_IfcValveType_type); + IFC2X3_IfcFlowControllerType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(11); + defs.push_back(IFC2X3_IfcAirTerminalType_type);defs.push_back(IFC2X3_IfcElectricApplianceType_type);defs.push_back(IFC2X3_IfcElectricHeaterType_type);defs.push_back(IFC2X3_IfcFireSuppressionTerminalType_type);defs.push_back(IFC2X3_IfcGasTerminalType_type);defs.push_back(IFC2X3_IfcLampType_type);defs.push_back(IFC2X3_IfcLightFixtureType_type);defs.push_back(IFC2X3_IfcOutletType_type);defs.push_back(IFC2X3_IfcSanitaryTerminalType_type);defs.push_back(IFC2X3_IfcStackTerminalType_type);defs.push_back(IFC2X3_IfcWasteTerminalType_type); + IFC2X3_IfcFlowTerminalType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(18); + defs.push_back(IFC2X3_IfcAirToAirHeatRecoveryType_type);defs.push_back(IFC2X3_IfcBoilerType_type);defs.push_back(IFC2X3_IfcChillerType_type);defs.push_back(IFC2X3_IfcCoilType_type);defs.push_back(IFC2X3_IfcCondenserType_type);defs.push_back(IFC2X3_IfcCooledBeamType_type);defs.push_back(IFC2X3_IfcCoolingTowerType_type);defs.push_back(IFC2X3_IfcElectricGeneratorType_type);defs.push_back(IFC2X3_IfcElectricMotorType_type);defs.push_back(IFC2X3_IfcEvaporativeCoolerType_type);defs.push_back(IFC2X3_IfcEvaporatorType_type);defs.push_back(IFC2X3_IfcHeatExchangerType_type);defs.push_back(IFC2X3_IfcHumidifierType_type);defs.push_back(IFC2X3_IfcMotorConnectionType_type);defs.push_back(IFC2X3_IfcSpaceHeaterType_type);defs.push_back(IFC2X3_IfcTransformerType_type);defs.push_back(IFC2X3_IfcTubeBundleType_type);defs.push_back(IFC2X3_IfcUnitaryEquipmentType_type); + IFC2X3_IfcEnergyConversionDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcAngularDimension_type);defs.push_back(IFC2X3_IfcDiameterDimension_type);defs.push_back(IFC2X3_IfcLinearDimension_type);defs.push_back(IFC2X3_IfcRadiusDimension_type); + IFC2X3_IfcDimensionCurveDirectedCallout_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC2X3_IfcAnnotation_type);defs.push_back(IFC2X3_IfcElement_type);defs.push_back(IFC2X3_IfcGrid_type);defs.push_back(IFC2X3_IfcPort_type);defs.push_back(IFC2X3_IfcProxy_type);defs.push_back(IFC2X3_IfcSpatialStructureElement_type);defs.push_back(IFC2X3_IfcStructuralActivity_type);defs.push_back(IFC2X3_IfcStructuralItem_type); + IFC2X3_IfcProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcAnnotationCurveOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationFillAreaOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationSurfaceOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationSymbolOccurrence_type);defs.push_back(IFC2X3_IfcAnnotationTextOccurrence_type); + IFC2X3_IfcAnnotationOccurrence_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(28); + defs.push_back(IFC2X3_IfcAnnotationFillArea_type);defs.push_back(IFC2X3_IfcAnnotationSurface_type);defs.push_back(IFC2X3_IfcBooleanResult_type);defs.push_back(IFC2X3_IfcBoundingBox_type);defs.push_back(IFC2X3_IfcCartesianTransformationOperator_type);defs.push_back(IFC2X3_IfcCompositeCurveSegment_type);defs.push_back(IFC2X3_IfcCsgPrimitive3D_type);defs.push_back(IFC2X3_IfcCurve_type);defs.push_back(IFC2X3_IfcDefinedSymbol_type);defs.push_back(IFC2X3_IfcDirection_type);defs.push_back(IFC2X3_IfcDraughtingCallout_type);defs.push_back(IFC2X3_IfcFaceBasedSurfaceModel_type);defs.push_back(IFC2X3_IfcFillAreaStyleHatching_type);defs.push_back(IFC2X3_IfcFillAreaStyleTileSymbolWithStyle_type);defs.push_back(IFC2X3_IfcFillAreaStyleTiles_type);defs.push_back(IFC2X3_IfcGeometricSet_type);defs.push_back(IFC2X3_IfcHalfSpaceSolid_type);defs.push_back(IFC2X3_IfcLightSource_type);defs.push_back(IFC2X3_IfcOneDirectionRepeatFactor_type);defs.push_back(IFC2X3_IfcPlacement_type);defs.push_back(IFC2X3_IfcPlanarExtent_type);defs.push_back(IFC2X3_IfcPoint_type);defs.push_back(IFC2X3_IfcSectionedSpine_type);defs.push_back(IFC2X3_IfcShellBasedSurfaceModel_type);defs.push_back(IFC2X3_IfcSolidModel_type);defs.push_back(IFC2X3_IfcSurface_type);defs.push_back(IFC2X3_IfcTextLiteral_type);defs.push_back(IFC2X3_IfcVector_type); + IFC2X3_IfcGeometricRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcAnnotationOccurrence_type); + IFC2X3_IfcStyledItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcArbitraryClosedProfileDef_type);defs.push_back(IFC2X3_IfcArbitraryOpenProfileDef_type);defs.push_back(IFC2X3_IfcCompositeProfileDef_type);defs.push_back(IFC2X3_IfcDerivedProfileDef_type);defs.push_back(IFC2X3_IfcParameterizedProfileDef_type); + IFC2X3_IfcProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcArbitraryProfileDefWithVoids_type); + IFC2X3_IfcArbitraryClosedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcAsset_type);defs.push_back(IFC2X3_IfcCondition_type);defs.push_back(IFC2X3_IfcInventory_type);defs.push_back(IFC2X3_IfcStructuralLoadGroup_type);defs.push_back(IFC2X3_IfcStructuralResultGroup_type);defs.push_back(IFC2X3_IfcSystem_type);defs.push_back(IFC2X3_IfcZone_type); + IFC2X3_IfcGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcAsymmetricIShapeProfileDef_type); + IFC2X3_IfcIShapeProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcAxis1Placement_type);defs.push_back(IFC2X3_IfcAxis2Placement2D_type);defs.push_back(IFC2X3_IfcAxis2Placement3D_type); + IFC2X3_IfcPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcBSplineCurve_type);defs.push_back(IFC2X3_IfcCompositeCurve_type);defs.push_back(IFC2X3_IfcPolyline_type);defs.push_back(IFC2X3_IfcTrimmedCurve_type); + IFC2X3_IfcBoundedCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(20); + defs.push_back(IFC2X3_IfcBeam_type);defs.push_back(IFC2X3_IfcBuildingElementComponent_type);defs.push_back(IFC2X3_IfcBuildingElementProxy_type);defs.push_back(IFC2X3_IfcColumn_type);defs.push_back(IFC2X3_IfcCovering_type);defs.push_back(IFC2X3_IfcCurtainWall_type);defs.push_back(IFC2X3_IfcDoor_type);defs.push_back(IFC2X3_IfcFooting_type);defs.push_back(IFC2X3_IfcMember_type);defs.push_back(IFC2X3_IfcPile_type);defs.push_back(IFC2X3_IfcPlate_type);defs.push_back(IFC2X3_IfcRailing_type);defs.push_back(IFC2X3_IfcRamp_type);defs.push_back(IFC2X3_IfcRampFlight_type);defs.push_back(IFC2X3_IfcRoof_type);defs.push_back(IFC2X3_IfcSlab_type);defs.push_back(IFC2X3_IfcStair_type);defs.push_back(IFC2X3_IfcStairFlight_type);defs.push_back(IFC2X3_IfcWall_type);defs.push_back(IFC2X3_IfcWindow_type); + IFC2X3_IfcBuildingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(12); + defs.push_back(IFC2X3_IfcBeamType_type);defs.push_back(IFC2X3_IfcBuildingElementProxyType_type);defs.push_back(IFC2X3_IfcColumnType_type);defs.push_back(IFC2X3_IfcCoveringType_type);defs.push_back(IFC2X3_IfcCurtainWallType_type);defs.push_back(IFC2X3_IfcMemberType_type);defs.push_back(IFC2X3_IfcPlateType_type);defs.push_back(IFC2X3_IfcRailingType_type);defs.push_back(IFC2X3_IfcRampFlightType_type);defs.push_back(IFC2X3_IfcSlabType_type);defs.push_back(IFC2X3_IfcStairFlightType_type);defs.push_back(IFC2X3_IfcWallType_type); + IFC2X3_IfcBuildingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcBezierCurve_type); + IFC2X3_IfcBSplineCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcBlobTexture_type);defs.push_back(IFC2X3_IfcImageTexture_type);defs.push_back(IFC2X3_IfcPixelTexture_type); + IFC2X3_IfcSurfaceTexture_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcBlock_type);defs.push_back(IFC2X3_IfcRectangularPyramid_type);defs.push_back(IFC2X3_IfcRightCircularCone_type);defs.push_back(IFC2X3_IfcRightCircularCylinder_type);defs.push_back(IFC2X3_IfcSphere_type); + IFC2X3_IfcCsgPrimitive3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcBooleanClippingResult_type); + IFC2X3_IfcBooleanResult_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcBoundaryEdgeCondition_type);defs.push_back(IFC2X3_IfcBoundaryFaceCondition_type);defs.push_back(IFC2X3_IfcBoundaryNodeCondition_type); + IFC2X3_IfcBoundaryCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcBoundaryNodeConditionWarping_type); + IFC2X3_IfcBoundaryNodeCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcBoundedCurve_type);defs.push_back(IFC2X3_IfcConic_type);defs.push_back(IFC2X3_IfcLine_type);defs.push_back(IFC2X3_IfcOffsetCurve2D_type);defs.push_back(IFC2X3_IfcOffsetCurve3D_type); + IFC2X3_IfcCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcBoundedSurface_type);defs.push_back(IFC2X3_IfcElementarySurface_type);defs.push_back(IFC2X3_IfcSweptSurface_type); + IFC2X3_IfcSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcBoxedHalfSpace_type);defs.push_back(IFC2X3_IfcPolygonalBoundedHalfSpace_type); + IFC2X3_IfcHalfSpaceSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcBuilding_type);defs.push_back(IFC2X3_IfcBuildingStorey_type);defs.push_back(IFC2X3_IfcSite_type);defs.push_back(IFC2X3_IfcSpace_type); + IFC2X3_IfcSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(10); + defs.push_back(IFC2X3_IfcBuildingElement_type);defs.push_back(IFC2X3_IfcDistributionElement_type);defs.push_back(IFC2X3_IfcElectricalElement_type);defs.push_back(IFC2X3_IfcElementAssembly_type);defs.push_back(IFC2X3_IfcElementComponent_type);defs.push_back(IFC2X3_IfcEquipmentElement_type);defs.push_back(IFC2X3_IfcFeatureElement_type);defs.push_back(IFC2X3_IfcFurnishingElement_type);defs.push_back(IFC2X3_IfcTransportElement_type);defs.push_back(IFC2X3_IfcVirtualElement_type); + IFC2X3_IfcElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcBuildingElementPart_type);defs.push_back(IFC2X3_IfcReinforcingElement_type); + IFC2X3_IfcBuildingElementComponent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcBuildingElementType_type);defs.push_back(IFC2X3_IfcDistributionElementType_type);defs.push_back(IFC2X3_IfcElementComponentType_type);defs.push_back(IFC2X3_IfcFurnishingElementType_type);defs.push_back(IFC2X3_IfcSpatialStructureElementType_type);defs.push_back(IFC2X3_IfcTransportElementType_type); + IFC2X3_IfcElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(12); + defs.push_back(IFC2X3_IfcCShapeProfileDef_type);defs.push_back(IFC2X3_IfcCircleProfileDef_type);defs.push_back(IFC2X3_IfcCraneRailAShapeProfileDef_type);defs.push_back(IFC2X3_IfcCraneRailFShapeProfileDef_type);defs.push_back(IFC2X3_IfcEllipseProfileDef_type);defs.push_back(IFC2X3_IfcIShapeProfileDef_type);defs.push_back(IFC2X3_IfcLShapeProfileDef_type);defs.push_back(IFC2X3_IfcRectangleProfileDef_type);defs.push_back(IFC2X3_IfcTShapeProfileDef_type);defs.push_back(IFC2X3_IfcTrapeziumProfileDef_type);defs.push_back(IFC2X3_IfcUShapeProfileDef_type);defs.push_back(IFC2X3_IfcZShapeProfileDef_type); + IFC2X3_IfcParameterizedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcCableCarrierFittingType_type);defs.push_back(IFC2X3_IfcDuctFittingType_type);defs.push_back(IFC2X3_IfcJunctionBoxType_type);defs.push_back(IFC2X3_IfcPipeFittingType_type); + IFC2X3_IfcFlowFittingType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcCableCarrierSegmentType_type);defs.push_back(IFC2X3_IfcCableSegmentType_type);defs.push_back(IFC2X3_IfcDuctSegmentType_type);defs.push_back(IFC2X3_IfcPipeSegmentType_type); + IFC2X3_IfcFlowSegmentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcCartesianPoint_type);defs.push_back(IFC2X3_IfcPointOnCurve_type);defs.push_back(IFC2X3_IfcPointOnSurface_type); + IFC2X3_IfcPoint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCartesianTransformationOperator2D_type);defs.push_back(IFC2X3_IfcCartesianTransformationOperator3D_type); + IFC2X3_IfcCartesianTransformationOperator_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCartesianTransformationOperator2DnonUniform_type); + IFC2X3_IfcCartesianTransformationOperator2D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCartesianTransformationOperator3DnonUniform_type); + IFC2X3_IfcCartesianTransformationOperator3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCenterLineProfileDef_type); + IFC2X3_IfcArbitraryOpenProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcChamferEdgeFeature_type);defs.push_back(IFC2X3_IfcRoundedEdgeFeature_type); + IFC2X3_IfcEdgeFeature_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCircle_type);defs.push_back(IFC2X3_IfcEllipse_type); + IFC2X3_IfcConic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcCircleHollowProfileDef_type); + IFC2X3_IfcCircleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcClassificationReference_type);defs.push_back(IFC2X3_IfcDocumentReference_type);defs.push_back(IFC2X3_IfcExternallyDefinedHatchStyle_type);defs.push_back(IFC2X3_IfcExternallyDefinedSurfaceStyle_type);defs.push_back(IFC2X3_IfcExternallyDefinedSymbol_type);defs.push_back(IFC2X3_IfcExternallyDefinedTextFont_type);defs.push_back(IFC2X3_IfcLibraryReference_type); + IFC2X3_IfcExternalReference_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcClosedShell_type);defs.push_back(IFC2X3_IfcOpenShell_type); + IFC2X3_IfcConnectedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcColourRgb_type); + IFC2X3_IfcColourSpecification_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcComplexProperty_type);defs.push_back(IFC2X3_IfcSimpleProperty_type); + IFC2X3_IfcProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcCompressorType_type);defs.push_back(IFC2X3_IfcFanType_type);defs.push_back(IFC2X3_IfcPumpType_type); + IFC2X3_IfcFlowMovingDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC2X3_IfcConnectedFaceSet_type);defs.push_back(IFC2X3_IfcEdge_type);defs.push_back(IFC2X3_IfcFace_type);defs.push_back(IFC2X3_IfcFaceBound_type);defs.push_back(IFC2X3_IfcLoop_type);defs.push_back(IFC2X3_IfcPath_type);defs.push_back(IFC2X3_IfcVertex_type); + IFC2X3_IfcTopologicalRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcConnectionCurveGeometry_type);defs.push_back(IFC2X3_IfcConnectionPointGeometry_type);defs.push_back(IFC2X3_IfcConnectionPortGeometry_type);defs.push_back(IFC2X3_IfcConnectionSurfaceGeometry_type); + IFC2X3_IfcConnectionGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcConnectionPointEccentricity_type); + IFC2X3_IfcConnectionPointGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcConstructionEquipmentResource_type);defs.push_back(IFC2X3_IfcConstructionMaterialResource_type);defs.push_back(IFC2X3_IfcConstructionProductResource_type);defs.push_back(IFC2X3_IfcCrewResource_type);defs.push_back(IFC2X3_IfcLaborResource_type);defs.push_back(IFC2X3_IfcSubContractResource_type); + IFC2X3_IfcConstructionResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcConstructionResource_type); + IFC2X3_IfcResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcContextDependentUnit_type);defs.push_back(IFC2X3_IfcConversionBasedUnit_type);defs.push_back(IFC2X3_IfcSIUnit_type); + IFC2X3_IfcNamedUnit_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCostValue_type);defs.push_back(IFC2X3_IfcEnvironmentalImpactValue_type); + IFC2X3_IfcAppliedValue_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcCsgSolid_type);defs.push_back(IFC2X3_IfcManifoldSolidBrep_type);defs.push_back(IFC2X3_IfcSweptAreaSolid_type);defs.push_back(IFC2X3_IfcSweptDiskSolid_type); + IFC2X3_IfcSolidModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcCurveBoundedPlane_type);defs.push_back(IFC2X3_IfcRectangularTrimmedSurface_type); + IFC2X3_IfcBoundedSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcCurveStyle_type);defs.push_back(IFC2X3_IfcFillAreaStyle_type);defs.push_back(IFC2X3_IfcSurfaceStyle_type);defs.push_back(IFC2X3_IfcSymbolStyle_type);defs.push_back(IFC2X3_IfcTextStyle_type); + IFC2X3_IfcPresentationStyle_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDimensionCalloutRelationship_type);defs.push_back(IFC2X3_IfcDimensionPair_type); + IFC2X3_IfcDraughtingCalloutRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDimensionCurve_type);defs.push_back(IFC2X3_IfcProjectionCurve_type); + IFC2X3_IfcAnnotationCurveOccurrence_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDimensionCurveDirectedCallout_type);defs.push_back(IFC2X3_IfcStructuredDimensionCallout_type); + IFC2X3_IfcDraughtingCallout_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDimensionCurveTerminator_type); + IFC2X3_IfcTerminatorSymbol_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDiscreteAccessory_type);defs.push_back(IFC2X3_IfcFastener_type); + IFC2X3_IfcElementComponent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDiscreteAccessoryType_type);defs.push_back(IFC2X3_IfcFastenerType_type); + IFC2X3_IfcElementComponentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC2X3_IfcDistributionChamberElement_type);defs.push_back(IFC2X3_IfcEnergyConversionDevice_type);defs.push_back(IFC2X3_IfcFlowController_type);defs.push_back(IFC2X3_IfcFlowFitting_type);defs.push_back(IFC2X3_IfcFlowMovingDevice_type);defs.push_back(IFC2X3_IfcFlowSegment_type);defs.push_back(IFC2X3_IfcFlowStorageDevice_type);defs.push_back(IFC2X3_IfcFlowTerminal_type);defs.push_back(IFC2X3_IfcFlowTreatmentDevice_type); + IFC2X3_IfcDistributionFlowElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC2X3_IfcDistributionChamberElementType_type);defs.push_back(IFC2X3_IfcEnergyConversionDeviceType_type);defs.push_back(IFC2X3_IfcFlowControllerType_type);defs.push_back(IFC2X3_IfcFlowFittingType_type);defs.push_back(IFC2X3_IfcFlowMovingDeviceType_type);defs.push_back(IFC2X3_IfcFlowSegmentType_type);defs.push_back(IFC2X3_IfcFlowStorageDeviceType_type);defs.push_back(IFC2X3_IfcFlowTerminalType_type);defs.push_back(IFC2X3_IfcFlowTreatmentDeviceType_type); + IFC2X3_IfcDistributionFlowElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDistributionControlElement_type);defs.push_back(IFC2X3_IfcDistributionFlowElement_type); + IFC2X3_IfcDistributionElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDistributionControlElementType_type);defs.push_back(IFC2X3_IfcDistributionFlowElementType_type); + IFC2X3_IfcDistributionElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDistributionPort_type); + IFC2X3_IfcPort_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(14); + defs.push_back(IFC2X3_IfcDoorLiningProperties_type);defs.push_back(IFC2X3_IfcDoorPanelProperties_type);defs.push_back(IFC2X3_IfcElementQuantity_type);defs.push_back(IFC2X3_IfcEnergyProperties_type);defs.push_back(IFC2X3_IfcFluidFlowProperties_type);defs.push_back(IFC2X3_IfcPermeableCoveringProperties_type);defs.push_back(IFC2X3_IfcPropertySet_type);defs.push_back(IFC2X3_IfcReinforcementDefinitionProperties_type);defs.push_back(IFC2X3_IfcServiceLifeFactor_type);defs.push_back(IFC2X3_IfcSoundProperties_type);defs.push_back(IFC2X3_IfcSoundValue_type);defs.push_back(IFC2X3_IfcSpaceThermalLoadProperties_type);defs.push_back(IFC2X3_IfcWindowLiningProperties_type);defs.push_back(IFC2X3_IfcWindowPanelProperties_type); + IFC2X3_IfcPropertySetDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcDoorStyle_type);defs.push_back(IFC2X3_IfcElementType_type);defs.push_back(IFC2X3_IfcWindowStyle_type); + IFC2X3_IfcTypeProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDraughtingPreDefinedColour_type); + IFC2X3_IfcPreDefinedColour_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcDraughtingPreDefinedCurveFont_type); + IFC2X3_IfcPreDefinedCurveFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDraughtingPreDefinedTextFont_type);defs.push_back(IFC2X3_IfcTextStyleFontModel_type); + IFC2X3_IfcPreDefinedTextFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcDuctSilencerType_type);defs.push_back(IFC2X3_IfcFilterType_type); + IFC2X3_IfcFlowTreatmentDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcEdgeCurve_type);defs.push_back(IFC2X3_IfcOrientedEdge_type);defs.push_back(IFC2X3_IfcSubedge_type); + IFC2X3_IfcEdge_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcEdgeFeature_type);defs.push_back(IFC2X3_IfcOpeningElement_type); + IFC2X3_IfcFeatureElementSubtraction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcEdgeLoop_type);defs.push_back(IFC2X3_IfcPolyLoop_type);defs.push_back(IFC2X3_IfcVertexLoop_type); + IFC2X3_IfcLoop_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcElectricDistributionPoint_type); + IFC2X3_IfcFlowController_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcElectricFlowStorageDeviceType_type);defs.push_back(IFC2X3_IfcTankType_type); + IFC2X3_IfcFlowStorageDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcElectricalBaseProperties_type); + IFC2X3_IfcEnergyProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcElectricalCircuit_type);defs.push_back(IFC2X3_IfcStructuralAnalysisModel_type); + IFC2X3_IfcSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC2X3_IfcExtendedMaterialProperties_type);defs.push_back(IFC2X3_IfcFuelProperties_type);defs.push_back(IFC2X3_IfcGeneralMaterialProperties_type);defs.push_back(IFC2X3_IfcHygroscopicMaterialProperties_type);defs.push_back(IFC2X3_IfcMechanicalMaterialProperties_type);defs.push_back(IFC2X3_IfcOpticalMaterialProperties_type);defs.push_back(IFC2X3_IfcProductsOfCombustionProperties_type);defs.push_back(IFC2X3_IfcThermalMaterialProperties_type);defs.push_back(IFC2X3_IfcWaterProperties_type); + IFC2X3_IfcMaterialProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcExtrudedAreaSolid_type);defs.push_back(IFC2X3_IfcRevolvedAreaSolid_type);defs.push_back(IFC2X3_IfcSurfaceCurveSweptAreaSolid_type); + IFC2X3_IfcSweptAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcFaceOuterBound_type); + IFC2X3_IfcFaceBound_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcFaceSurface_type); + IFC2X3_IfcFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFacetedBrep_type);defs.push_back(IFC2X3_IfcFacetedBrepWithVoids_type); + IFC2X3_IfcManifoldSolidBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFailureConnectionCondition_type);defs.push_back(IFC2X3_IfcSlippageConnectionCondition_type); + IFC2X3_IfcStructuralConnectionCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFeatureElementAddition_type);defs.push_back(IFC2X3_IfcFeatureElementSubtraction_type); + IFC2X3_IfcFeatureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcFurnitureType_type);defs.push_back(IFC2X3_IfcSystemFurnitureElementType_type); + IFC2X3_IfcFurnishingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcGeneralProfileProperties_type);defs.push_back(IFC2X3_IfcRibPlateProfileProperties_type); + IFC2X3_IfcProfileProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcGeometricCurveSet_type); + IFC2X3_IfcGeometricSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcGeometricRepresentationContext_type); + IFC2X3_IfcRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcGeometricRepresentationItem_type);defs.push_back(IFC2X3_IfcMappedItem_type);defs.push_back(IFC2X3_IfcStyledItem_type);defs.push_back(IFC2X3_IfcTopologicalRepresentationItem_type); + IFC2X3_IfcRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcGeometricRepresentationSubContext_type); + IFC2X3_IfcGeometricRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcGridPlacement_type);defs.push_back(IFC2X3_IfcLocalPlacement_type); + IFC2X3_IfcObjectPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcIrregularTimeSeries_type);defs.push_back(IFC2X3_IfcRegularTimeSeries_type); + IFC2X3_IfcTimeSeries_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcLightSourceAmbient_type);defs.push_back(IFC2X3_IfcLightSourceDirectional_type);defs.push_back(IFC2X3_IfcLightSourceGoniometric_type);defs.push_back(IFC2X3_IfcLightSourcePositional_type); + IFC2X3_IfcLightSource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcLightSourceSpot_type); + IFC2X3_IfcLightSourcePositional_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMaterialDefinitionRepresentation_type);defs.push_back(IFC2X3_IfcProductDefinitionShape_type); + IFC2X3_IfcProductRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMechanicalConcreteMaterialProperties_type);defs.push_back(IFC2X3_IfcMechanicalSteelMaterialProperties_type); + IFC2X3_IfcMechanicalMaterialProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcMechanicalFastener_type); + IFC2X3_IfcFastener_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcMechanicalFastenerType_type); + IFC2X3_IfcFastenerType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMetric_type);defs.push_back(IFC2X3_IfcObjective_type); + IFC2X3_IfcConstraint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcMove_type);defs.push_back(IFC2X3_IfcOrderAction_type); + IFC2X3_IfcTask_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcObject_type);defs.push_back(IFC2X3_IfcTypeObject_type); + IFC2X3_IfcObjectDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcObjectDefinition_type);defs.push_back(IFC2X3_IfcPropertyDefinition_type);defs.push_back(IFC2X3_IfcRelationship_type); + IFC2X3_IfcRoot_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcOccupant_type); + IFC2X3_IfcActor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcPhysicalComplexQuantity_type);defs.push_back(IFC2X3_IfcPhysicalSimpleQuantity_type); + IFC2X3_IfcPhysicalQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPlanarBox_type); + IFC2X3_IfcPlanarExtent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPlane_type); + IFC2X3_IfcElementarySurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcPostalAddress_type);defs.push_back(IFC2X3_IfcTelecomAddress_type); + IFC2X3_IfcAddress_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcPreDefinedColour_type);defs.push_back(IFC2X3_IfcPreDefinedCurveFont_type);defs.push_back(IFC2X3_IfcPreDefinedSymbol_type);defs.push_back(IFC2X3_IfcPreDefinedTextFont_type); + IFC2X3_IfcPreDefinedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcPreDefinedDimensionSymbol_type);defs.push_back(IFC2X3_IfcPreDefinedPointMarkerSymbol_type);defs.push_back(IFC2X3_IfcPreDefinedTerminatorSymbol_type); + IFC2X3_IfcPreDefinedSymbol_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPresentationLayerWithStyle_type); + IFC2X3_IfcPresentationLayerAssignment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcProcedure_type);defs.push_back(IFC2X3_IfcTask_type); + IFC2X3_IfcProcess_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcProjectionElement_type); + IFC2X3_IfcFeatureElementAddition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcPropertyBoundedValue_type);defs.push_back(IFC2X3_IfcPropertyEnumeratedValue_type);defs.push_back(IFC2X3_IfcPropertyListValue_type);defs.push_back(IFC2X3_IfcPropertyReferenceValue_type);defs.push_back(IFC2X3_IfcPropertySingleValue_type);defs.push_back(IFC2X3_IfcPropertyTableValue_type); + IFC2X3_IfcSimpleProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcPropertySetDefinition_type); + IFC2X3_IfcPropertyDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcQuantityArea_type);defs.push_back(IFC2X3_IfcQuantityCount_type);defs.push_back(IFC2X3_IfcQuantityLength_type);defs.push_back(IFC2X3_IfcQuantityTime_type);defs.push_back(IFC2X3_IfcQuantityVolume_type);defs.push_back(IFC2X3_IfcQuantityWeight_type); + IFC2X3_IfcPhysicalSimpleQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRationalBezierCurve_type); + IFC2X3_IfcBezierCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRectangleHollowProfileDef_type);defs.push_back(IFC2X3_IfcRoundedRectangleProfileDef_type); + IFC2X3_IfcRectangleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC2X3_IfcReinforcingBar_type);defs.push_back(IFC2X3_IfcReinforcingMesh_type);defs.push_back(IFC2X3_IfcTendon_type);defs.push_back(IFC2X3_IfcTendonAnchor_type); + IFC2X3_IfcReinforcingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRelAggregates_type);defs.push_back(IFC2X3_IfcRelNests_type); + IFC2X3_IfcRelDecomposes_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcRelAssigns_type);defs.push_back(IFC2X3_IfcRelAssociates_type);defs.push_back(IFC2X3_IfcRelConnects_type);defs.push_back(IFC2X3_IfcRelDecomposes_type);defs.push_back(IFC2X3_IfcRelDefines_type); + IFC2X3_IfcRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcRelAssignsTasks_type);defs.push_back(IFC2X3_IfcRelAssignsToProjectOrder_type);defs.push_back(IFC2X3_IfcRelSchedulesCostItems_type); + IFC2X3_IfcRelAssignsToControl_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC2X3_IfcRelAssignsToActor_type);defs.push_back(IFC2X3_IfcRelAssignsToControl_type);defs.push_back(IFC2X3_IfcRelAssignsToGroup_type);defs.push_back(IFC2X3_IfcRelAssignsToProcess_type);defs.push_back(IFC2X3_IfcRelAssignsToProduct_type);defs.push_back(IFC2X3_IfcRelAssignsToResource_type); + IFC2X3_IfcRelAssigns_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC2X3_IfcRelAssociatesAppliedValue_type);defs.push_back(IFC2X3_IfcRelAssociatesApproval_type);defs.push_back(IFC2X3_IfcRelAssociatesClassification_type);defs.push_back(IFC2X3_IfcRelAssociatesConstraint_type);defs.push_back(IFC2X3_IfcRelAssociatesDocument_type);defs.push_back(IFC2X3_IfcRelAssociatesLibrary_type);defs.push_back(IFC2X3_IfcRelAssociatesMaterial_type);defs.push_back(IFC2X3_IfcRelAssociatesProfileProperties_type); + IFC2X3_IfcRelAssociates_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(18); + defs.push_back(IFC2X3_IfcRelConnectsElements_type);defs.push_back(IFC2X3_IfcRelConnectsPortToElement_type);defs.push_back(IFC2X3_IfcRelConnectsPorts_type);defs.push_back(IFC2X3_IfcRelConnectsStructuralActivity_type);defs.push_back(IFC2X3_IfcRelConnectsStructuralElement_type);defs.push_back(IFC2X3_IfcRelConnectsStructuralMember_type);defs.push_back(IFC2X3_IfcRelContainedInSpatialStructure_type);defs.push_back(IFC2X3_IfcRelCoversBldgElements_type);defs.push_back(IFC2X3_IfcRelCoversSpaces_type);defs.push_back(IFC2X3_IfcRelFillsElement_type);defs.push_back(IFC2X3_IfcRelFlowControlElements_type);defs.push_back(IFC2X3_IfcRelInteractionRequirements_type);defs.push_back(IFC2X3_IfcRelProjectsElement_type);defs.push_back(IFC2X3_IfcRelReferencedInSpatialStructure_type);defs.push_back(IFC2X3_IfcRelSequence_type);defs.push_back(IFC2X3_IfcRelServicesBuildings_type);defs.push_back(IFC2X3_IfcRelSpaceBoundary_type);defs.push_back(IFC2X3_IfcRelVoidsElement_type); + IFC2X3_IfcRelConnects_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRelConnectsPathElements_type);defs.push_back(IFC2X3_IfcRelConnectsWithRealizingElements_type); + IFC2X3_IfcRelConnectsElements_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRelConnectsWithEccentricity_type); + IFC2X3_IfcRelConnectsStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcRelDefinesByProperties_type);defs.push_back(IFC2X3_IfcRelDefinesByType_type); + IFC2X3_IfcRelDefines_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRelOccupiesSpaces_type); + IFC2X3_IfcRelAssignsToActor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcRelOverridesProperties_type); + IFC2X3_IfcRelDefinesByProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcShapeModel_type);defs.push_back(IFC2X3_IfcStyleModel_type); + IFC2X3_IfcRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcShapeRepresentation_type);defs.push_back(IFC2X3_IfcTopologyRepresentation_type); + IFC2X3_IfcShapeModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcSpaceType_type); + IFC2X3_IfcSpatialStructureElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcStructuralAction_type);defs.push_back(IFC2X3_IfcStructuralReaction_type); + IFC2X3_IfcStructuralActivity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcStructuralConnection_type);defs.push_back(IFC2X3_IfcStructuralMember_type); + IFC2X3_IfcStructuralItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcStructuralCurveConnection_type);defs.push_back(IFC2X3_IfcStructuralPointConnection_type);defs.push_back(IFC2X3_IfcStructuralSurfaceConnection_type); + IFC2X3_IfcStructuralConnection_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcStructuralCurveMember_type);defs.push_back(IFC2X3_IfcStructuralSurfaceMember_type); + IFC2X3_IfcStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralCurveMemberVarying_type); + IFC2X3_IfcStructuralCurveMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC2X3_IfcStructuralLinearAction_type);defs.push_back(IFC2X3_IfcStructuralPlanarAction_type);defs.push_back(IFC2X3_IfcStructuralPointAction_type); + IFC2X3_IfcStructuralAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLinearActionVarying_type); + IFC2X3_IfcStructuralLinearAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC2X3_IfcStructuralLoadLinearForce_type);defs.push_back(IFC2X3_IfcStructuralLoadPlanarForce_type);defs.push_back(IFC2X3_IfcStructuralLoadSingleDisplacement_type);defs.push_back(IFC2X3_IfcStructuralLoadSingleForce_type);defs.push_back(IFC2X3_IfcStructuralLoadTemperature_type); + IFC2X3_IfcStructuralLoadStatic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLoadSingleDisplacementDistortion_type); + IFC2X3_IfcStructuralLoadSingleDisplacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLoadSingleForceWarping_type); + IFC2X3_IfcStructuralLoadSingleForce_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralLoadStatic_type); + IFC2X3_IfcStructuralLoad_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralPlanarActionVarying_type); + IFC2X3_IfcStructuralPlanarAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralPointReaction_type); + IFC2X3_IfcStructuralReaction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralProfileProperties_type); + IFC2X3_IfcGeneralProfileProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralSteelProfileProperties_type); + IFC2X3_IfcStructuralProfileProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStructuralSurfaceMemberVarying_type); + IFC2X3_IfcStructuralSurfaceMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcStyledRepresentation_type); + IFC2X3_IfcStyleModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcSurfaceOfLinearExtrusion_type);defs.push_back(IFC2X3_IfcSurfaceOfRevolution_type); + IFC2X3_IfcSweptSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcSurfaceStyleRendering_type); + IFC2X3_IfcSurfaceStyleShading_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTerminatorSymbol_type); + IFC2X3_IfcAnnotationSymbolOccurrence_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTextLiteralWithExtent_type); + IFC2X3_IfcTextLiteral_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcTextureCoordinateGenerator_type);defs.push_back(IFC2X3_IfcTextureMap_type); + IFC2X3_IfcTextureCoordinate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTwoDirectionRepeatFactor_type); + IFC2X3_IfcOneDirectionRepeatFactor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcTypeProduct_type); + IFC2X3_IfcTypeObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcVertexPoint_type); + IFC2X3_IfcVertex_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcVibrationIsolatorType_type); + IFC2X3_IfcDiscreteAccessoryType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC2X3_IfcWallStandardCase_type); + IFC2X3_IfcWall_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC2X3_IfcWorkPlan_type);defs.push_back(IFC2X3_IfcWorkSchedule_type); + IFC2X3_IfcWorkControl_type->set_subtypes(defs); + } std::vector declarations; declarations.reserve(980); declarations.push_back(IFC2X3_IfcAbsorbedDoseMeasure_type); diff --git a/src/ifcparse/Ifc4-schema.cpp b/src/ifcparse/Ifc4-schema.cpp index 9e63c17b01..2df01a526d 100644 --- a/src/ifcparse/Ifc4-schema.cpp +++ b/src/ifcparse/Ifc4-schema.cpp @@ -6006,6633 +6006,7678 @@ IfcParse::schema_definition* IFC4_populate_schema() { IFC4_IfcAlarm_type = new entity("IfcAlarm", 26, IFC4_IfcDistributionControlElement_type); IFC4_IfcController_type = new entity("IfcController", 202, IFC4_IfcDistributionControlElement_type); { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcActionRequestTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcActionRequestTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActionRequest_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TheActor", new named_type(IFC4_IfcActorSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TheActor", new named_type(IFC4_IfcActorSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Role", new named_type(IFC4_IfcRoleEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedRole", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Role", new named_type(IFC4_IfcRoleEnum_type), false)); + attributes.push_back(new attribute("UserDefinedRole", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActorRole_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActuator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcActuatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcActuatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcAddressTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPurpose", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcAddressTypeEnum_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("UserDefinedPurpose", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcAdvancedBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAdvancedBrepWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAdvancedFace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminalBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminalBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirToAirHeatRecovery_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAirToAirHeatRecoveryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAlarm_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAlarmTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAlarmType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAnnotation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAnnotationFillArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ApplicationDeveloper", new named_type(IFC4_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationFullName", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ApplicationIdentifier", new named_type(IFC4_IfcIdentifier_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ApplicationDeveloper", new named_type(IFC4_IfcOrganization_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationFullName", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("ApplicationIdentifier", new named_type(IFC4_IfcIdentifier_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcApplication_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(10); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("AppliedValue", new named_type(IFC4_IfcAppliedValueSelect_type), true)); - attributes.push_back(new entity::attribute("UnitBasis", new named_type(IFC4_IfcMeasureWithUnit_type), true)); - attributes.push_back(new entity::attribute("ApplicableDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("FixedUntilDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Condition", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ArithmeticOperator", new named_type(IFC4_IfcArithmeticOperatorEnum_type), true)); - attributes.push_back(new entity::attribute("Components", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); + std::vector attributes; attributes.reserve(10); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("AppliedValue", new named_type(IFC4_IfcAppliedValueSelect_type), true)); + attributes.push_back(new attribute("UnitBasis", new named_type(IFC4_IfcMeasureWithUnit_type), true)); + attributes.push_back(new attribute("ApplicableDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("FixedUntilDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Condition", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ArithmeticOperator", new named_type(IFC4_IfcArithmeticOperatorEnum_type), true)); + attributes.push_back(new attribute("Components", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAppliedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("TimeOfApproval", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Level", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Qualifier", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("RequestingApproval", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("GivingApproval", new named_type(IFC4_IfcActorSelect_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("TimeOfApproval", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Level", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Qualifier", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("RequestingApproval", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("GivingApproval", new named_type(IFC4_IfcActorSelect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); - attributes.push_back(new entity::attribute("RelatedApprovals", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcApproval_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); + attributes.push_back(new attribute("RelatedApprovals", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcApproval_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcApprovalRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OuterCurve", new named_type(IFC4_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OuterCurve", new named_type(IFC4_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcArbitraryClosedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Curve", new named_type(IFC4_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Curve", new named_type(IFC4_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcArbitraryOpenProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("InnerCurves", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCurve_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcArbitraryProfileDefWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("TotalReplacementCost", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("Owner", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("User", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("ResponsiblePerson", new named_type(IFC4_IfcPerson_type), true)); - attributes.push_back(new entity::attribute("IncorporationDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("DepreciatedValue", new named_type(IFC4_IfcCostValue_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("TotalReplacementCost", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("Owner", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("User", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("ResponsiblePerson", new named_type(IFC4_IfcPerson_type), true)); + attributes.push_back(new attribute("IncorporationDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("DepreciatedValue", new named_type(IFC4_IfcCostValue_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAsset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::attribute("BottomFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BottomFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BottomFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TopFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new attribute("BottomFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopFlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("BottomFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("BottomFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TopFlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(15); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAsymmetricIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAudioVisualAppliance_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAudioVisualApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAudioVisualApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAxis1Placement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcAxis2Placement2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), true)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcAxis2Placement3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Degree", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); - attributes.push_back(new entity::attribute("CurveForm", new named_type(IFC4_IfcBSplineCurveForm_type), false)); - attributes.push_back(new entity::attribute("ClosedCurve", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Degree", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); + attributes.push_back(new attribute("CurveForm", new named_type(IFC4_IfcBSplineCurveForm_type), false)); + attributes.push_back(new attribute("ClosedCurve", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("KnotMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("Knots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); - attributes.push_back(new entity::attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("KnotMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("Knots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); + attributes.push_back(new attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineCurveWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("UDegree", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("VDegree", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type))), false)); - attributes.push_back(new entity::attribute("SurfaceForm", new named_type(IFC4_IfcBSplineSurfaceForm_type), false)); - attributes.push_back(new entity::attribute("UClosed", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("VClosed", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("UDegree", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("VDegree", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("ControlPointsList", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type))), false)); + attributes.push_back(new attribute("SurfaceForm", new named_type(IFC4_IfcBSplineSurfaceForm_type), false)); + attributes.push_back(new attribute("UClosed", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("VClosed", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("UMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("VMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("UKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); - attributes.push_back(new entity::attribute("VKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); - attributes.push_back(new entity::attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("UMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("VMultiplicities", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("UKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); + attributes.push_back(new attribute("VKnots", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcParameterValue_type)), false)); + attributes.push_back(new attribute("KnotSpec", new named_type(IFC4_IfcKnotType_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBSplineSurfaceWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBeam_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBeamStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RasterFormat", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("RasterCode", new named_type(IFC4_IfcBinary_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RasterFormat", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("RasterCode", new named_type(IFC4_IfcBinary_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBlobTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBlock_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoiler_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBoilerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoilerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBooleanClippingResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC4_IfcBooleanOperator_type), false)); - attributes.push_back(new entity::attribute("FirstOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); - attributes.push_back(new entity::attribute("SecondOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Operator", new named_type(IFC4_IfcBooleanOperator_type), false)); + attributes.push_back(new attribute("FirstOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); + attributes.push_back(new attribute("SecondOperand", new named_type(IFC4_IfcBooleanOperand_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBooleanResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcBoundaryCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TranslationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TranslationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfTranslationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthX", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthY", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessByLengthZ", new named_type(IFC4_IfcModulusOfRotationalSubgradeReactionSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryEdgeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TranslationalStiffnessByAreaX", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByAreaY", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessByAreaZ", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TranslationalStiffnessByAreaX", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByAreaY", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessByAreaZ", new named_type(IFC4_IfcModulusOfSubgradeReactionSelect_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryFaceCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TranslationalStiffnessX", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessY", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("TranslationalStiffnessZ", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessX", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessY", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); - attributes.push_back(new entity::attribute("RotationalStiffnessZ", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TranslationalStiffnessX", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessY", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("TranslationalStiffnessZ", new named_type(IFC4_IfcTranslationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessX", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessY", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); + attributes.push_back(new attribute("RotationalStiffnessZ", new named_type(IFC4_IfcRotationalStiffnessSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryNodeCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingStiffness", new named_type(IFC4_IfcWarpingStiffnessSelect_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingStiffness", new named_type(IFC4_IfcWarpingStiffnessSelect_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundaryNodeConditionWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcBoundedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcBoundedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Corner", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ZDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Corner", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ZDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoundingBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Enclosure", new named_type(IFC4_IfcBoundingBox_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Enclosure", new named_type(IFC4_IfcBoundingBox_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBoxedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ElevationOfRefHeight", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ElevationOfTerrain", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BuildingAddress", new named_type(IFC4_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ElevationOfRefHeight", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ElevationOfTerrain", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("BuildingAddress", new named_type(IFC4_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuilding_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementPart_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementPartTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementPartType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingElementProxyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementProxyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elevation", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elevation", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingStorey_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBuildingSystemTypeEnum_type), true)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBuildingSystemTypeEnum_type), true)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBuildingSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBurner_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcBurnerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcBurnerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Girth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InternalFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Girth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InternalFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableCarrierSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableCarrierSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCableSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCableSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCartesianPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcCartesianPointList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcLengthMeasure_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcLengthMeasure_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCartesianPointList2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcLengthMeasure_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CoordList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcLengthMeasure_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCartesianPointList3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Axis1", new named_type(IFC4_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("Axis2", new named_type(IFC4_IfcDirection_type), true)); - attributes.push_back(new entity::attribute("LocalOrigin", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Scale", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Axis1", new named_type(IFC4_IfcDirection_type), true)); + attributes.push_back(new attribute("Axis2", new named_type(IFC4_IfcDirection_type), true)); + attributes.push_back(new attribute("LocalOrigin", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Scale", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator2DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis3", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis3", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("Scale3", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Scale2", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("Scale3", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCartesianTransformationOperator3DnonUniform_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCenterLineProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChiller_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChillerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChillerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChimney_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcChimneyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcChimneyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCircle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCircleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCircleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCivilElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCivilElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Source", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Edition", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("EditionDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("ReferenceTokens", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Source", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Edition", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("EditionDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("ReferenceTokens", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ReferencedSource", new named_type(IFC4_IfcClassificationReferenceSelect_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Sort", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ReferencedSource", new named_type(IFC4_IfcClassificationReferenceSelect_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Sort", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcClassificationReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcClosedShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoil_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoilTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoilType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Red", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Green", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("Blue", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Red", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Green", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); + attributes.push_back(new attribute("Blue", new named_type(IFC4_IfcNormalisedRatioMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColourRgb_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ColourList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcNormalisedRatioMeasure_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ColourList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcNormalisedRatioMeasure_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcColourRgbList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcColourSpecification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColumn_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColumnStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcColumnTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcColumnType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCommunicationsAppliance_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCommunicationsApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCommunicationsApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcComplexProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("TemplateType", new named_type(IFC4_IfcComplexPropertyTemplateTypeEnum_type), true)); - attributes.push_back(new entity::attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("UsageName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("TemplateType", new named_type(IFC4_IfcComplexPropertyTemplateTypeEnum_type), true)); + attributes.push_back(new attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcComplexPropertyTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCompositeCurveSegment_type)), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCompositeCurveSegment_type)), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeCurveOnSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Transition", new named_type(IFC4_IfcTransitionCode_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("ParentCurve", new named_type(IFC4_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Transition", new named_type(IFC4_IfcTransitionCode_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("ParentCurve", new named_type(IFC4_IfcCurve_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeCurveSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Profiles", new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("Label", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompositeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompressor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCompressorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCompressorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCondenser_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCondenserTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCondenserType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcConic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFace_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CfsFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFace_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcConnectedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CurveOnRelatingElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), false)); - attributes.push_back(new entity::attribute("CurveOnRelatedElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CurveOnRelatingElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), false)); + attributes.push_back(new attribute("CurveOnRelatedElement", new named_type(IFC4_IfcCurveOrEdgeCurve_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionCurveGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcConnectionGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("EccentricityInX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInY", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EccentricityInZ", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("EccentricityInX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInY", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("EccentricityInZ", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionPointEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PointOnRelatingElement", new named_type(IFC4_IfcPointOrVertexPoint_type), false)); - attributes.push_back(new entity::attribute("PointOnRelatedElement", new named_type(IFC4_IfcPointOrVertexPoint_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PointOnRelatingElement", new named_type(IFC4_IfcPointOrVertexPoint_type), false)); + attributes.push_back(new attribute("PointOnRelatedElement", new named_type(IFC4_IfcPointOrVertexPoint_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionPointGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SurfaceOnRelatingElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), false)); - attributes.push_back(new entity::attribute("SurfaceOnRelatedElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SurfaceOnRelatingElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), false)); + attributes.push_back(new attribute("SurfaceOnRelatedElement", new named_type(IFC4_IfcSurfaceOrFaceSurface_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionSurfaceGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VolumeOnRelatingElement", new named_type(IFC4_IfcSolidOrShell_type), false)); - attributes.push_back(new entity::attribute("VolumeOnRelatedElement", new named_type(IFC4_IfcSolidOrShell_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VolumeOnRelatingElement", new named_type(IFC4_IfcSolidOrShell_type), false)); + attributes.push_back(new attribute("VolumeOnRelatedElement", new named_type(IFC4_IfcSolidOrShell_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcConnectionVolumeGeometry_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ConstraintGrade", new named_type(IFC4_IfcConstraintEnum_type), false)); - attributes.push_back(new entity::attribute("ConstraintSource", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CreatingActor", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("UserDefinedGrade", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ConstraintGrade", new named_type(IFC4_IfcConstraintEnum_type), false)); + attributes.push_back(new attribute("ConstraintSource", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("CreatingActor", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("UserDefinedGrade", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionEquipmentResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionEquipmentResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionEquipmentResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionMaterialResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionMaterialResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionMaterialResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionProductResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcConstructionProductResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionProductResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Usage", new named_type(IFC4_IfcResourceTime_type), true)); - attributes.push_back(new entity::attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); - attributes.push_back(new entity::attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Usage", new named_type(IFC4_IfcResourceTime_type), true)); + attributes.push_back(new attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); + attributes.push_back(new attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); - attributes.push_back(new entity::attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BaseCosts", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAppliedValue_type)), true)); + attributes.push_back(new attribute("BaseQuantity", new named_type(IFC4_IfcPhysicalQuantity_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConstructionResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Phase", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationContext_type)), true)); - attributes.push_back(new entity::attribute("UnitsInContext", new named_type(IFC4_IfcUnitAssignment_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Phase", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationContexts", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationContext_type)), true)); + attributes.push_back(new attribute("UnitsInContext", new named_type(IFC4_IfcUnitAssignment_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcContextDependentUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcController_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcControllerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("ConversionFactor", new named_type(IFC4_IfcMeasureWithUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("ConversionFactor", new named_type(IFC4_IfcMeasureWithUnit_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConversionBasedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConversionOffset", new named_type(IFC4_IfcReal_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConversionOffset", new named_type(IFC4_IfcReal_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcConversionBasedUnitWithOffset_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCooledBeam_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCooledBeamTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCooledBeamType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoolingTower_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoolingTowerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoolingTowerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SourceCRS", new named_type(IFC4_IfcCoordinateReferenceSystemSelect_type), false)); - attributes.push_back(new entity::attribute("TargetCRS", new named_type(IFC4_IfcCoordinateReferenceSystem_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SourceCRS", new named_type(IFC4_IfcCoordinateReferenceSystemSelect_type), false)); + attributes.push_back(new attribute("TargetCRS", new named_type(IFC4_IfcCoordinateReferenceSystem_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCoordinateOperation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("GeodeticDatum", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("VerticalDatum", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("GeodeticDatum", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("VerticalDatum", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoordinateReferenceSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCostItemTypeEnum_type), true)); - attributes.push_back(new entity::attribute("CostValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCostValue_type)), true)); - attributes.push_back(new entity::attribute("CostQuantities", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCostItemTypeEnum_type), true)); + attributes.push_back(new attribute("CostValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCostValue_type)), true)); + attributes.push_back(new attribute("CostQuantities", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCostItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCostScheduleTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SubmittedOn", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("UpdateDate", new named_type(IFC4_IfcDateTime_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCostScheduleTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("SubmittedOn", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("UpdateDate", new named_type(IFC4_IfcDateTime_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCostSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCostValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCovering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCoveringTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCoveringType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCrewResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCrewResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCrewResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCsgPrimitive3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TreeRootExpression", new named_type(IFC4_IfcCsgSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TreeRootExpression", new named_type(IFC4_IfcCsgSelect_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcCsgSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("RelatedMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); - attributes.push_back(new entity::attribute("ExchangeRate", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); - attributes.push_back(new entity::attribute("RateDateTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("RateSource", new named_type(IFC4_IfcLibraryInformation_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("RelatedMonetaryUnit", new named_type(IFC4_IfcMonetaryUnit_type), false)); + attributes.push_back(new attribute("ExchangeRate", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); + attributes.push_back(new attribute("RateDateTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("RateSource", new named_type(IFC4_IfcLibraryInformation_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurrencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurtainWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcCurtainWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurtainWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcPlane_type), false)); - attributes.push_back(new entity::attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcCurve_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcPlane_type), false)); + attributes.push_back(new attribute("OuterBoundary", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("InnerBoundaries", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcCurve_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveBoundedPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("Boundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcBoundaryCurve_type)), false)); - attributes.push_back(new entity::attribute("ImplicitOuter", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("Boundaries", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcBoundaryCurve_type)), false)); + attributes.push_back(new attribute("ImplicitOuter", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveBoundedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC4_IfcCurveFontOrScaledCurveFontSelect_type), true)); - attributes.push_back(new entity::attribute("CurveWidth", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("CurveColour", new named_type(IFC4_IfcColour_type), true)); - attributes.push_back(new entity::attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CurveFont", new named_type(IFC4_IfcCurveFontOrScaledCurveFontSelect_type), true)); + attributes.push_back(new attribute("CurveWidth", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("CurveColour", new named_type(IFC4_IfcColour_type), true)); + attributes.push_back(new attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCurveStyleFontPattern_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("PatternList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcCurveStyleFontPattern_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyleFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("CurveFont", new named_type(IFC4_IfcCurveStyleFontSelect_type), false)); - attributes.push_back(new entity::attribute("CurveFontScaling", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("CurveFont", new named_type(IFC4_IfcCurveStyleFontSelect_type), false)); + attributes.push_back(new attribute("CurveFontScaling", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyleFontAndScaling_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VisibleSegmentLength", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InvisibleSegmentLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VisibleSegmentLength", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("InvisibleSegmentLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCurveStyleFontPattern_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcCylindricalSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDamper_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDamperTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDamperType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ParentProfile", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Operator", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), false)); - attributes.push_back(new entity::attribute("Label", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ParentProfile", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Operator", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), false)); + attributes.push_back(new attribute("Label", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDerivedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDerivedUnitElement_type)), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC4_IfcDerivedUnitEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDerivedUnitElement_type)), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC4_IfcDerivedUnitEnum_type), false)); + attributes.push_back(new attribute("UserDefinedType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDerivedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), false)); - attributes.push_back(new entity::attribute("Exponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), false)); + attributes.push_back(new attribute("Exponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcDerivedUnitElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("MassExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); - attributes.push_back(new entity::attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("LengthExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("MassExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("TimeExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ElectricCurrentExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("ThermodynamicTemperatureExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("AmountOfSubstanceExponent", new simple_type(simple_type::integer_type), false)); + attributes.push_back(new attribute("LuminousIntensityExponent", new simple_type(simple_type::integer_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDimensionalExponents_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcReal_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("DirectionRatios", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcReal_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcDirection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDiscreteAccessory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDiscreteAccessoryTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDiscreteAccessoryType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionChamberElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionChamberElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionChamberElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionCircuit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionControlElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionControlElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionFlowElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionFlowElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("FlowDirection", new named_type(IFC4_IfcFlowDirectionEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionPortTypeEnum_type), true)); - attributes.push_back(new entity::attribute("SystemType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("FlowDirection", new named_type(IFC4_IfcFlowDirectionEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionPortTypeEnum_type), true)); + attributes.push_back(new attribute("SystemType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDistributionSystemEnum_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDistributionSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(17); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("IntendedUse", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Scope", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Revision", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DocumentOwner", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcActorSelect_type)), true)); - attributes.push_back(new entity::attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LastRevisionTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ElectronicFormat", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("ValidFrom", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("ValidUntil", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Confidentiality", new named_type(IFC4_IfcDocumentConfidentialityEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcDocumentStatusEnum_type), true)); + std::vector attributes; attributes.reserve(17); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("IntendedUse", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Scope", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Revision", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("DocumentOwner", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("Editors", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcActorSelect_type)), true)); + attributes.push_back(new attribute("CreationTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LastRevisionTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ElectronicFormat", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("ValidFrom", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("ValidUntil", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Confidentiality", new named_type(IFC4_IfcDocumentConfidentialityEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcDocumentStatusEnum_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDocumentInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC4_IfcDocumentInformation_type), false)); - attributes.push_back(new entity::attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDocumentInformation_type)), false)); - attributes.push_back(new entity::attribute("RelationshipType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC4_IfcDocumentInformation_type), false)); + attributes.push_back(new attribute("RelatedDocuments", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDocumentInformation_type)), false)); + attributes.push_back(new attribute("RelationshipType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDocumentInformationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ReferencedDocument", new named_type(IFC4_IfcDocumentInformation_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ReferencedDocument", new named_type(IFC4_IfcDocumentInformation_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDocumentReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), true)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), true)); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), true)); + attributes.push_back(new attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(13); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ThresholdOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CasingDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(13); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ThresholdOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CasingDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PanelDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelOperation", new named_type(IFC4_IfcDoorPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelWidth", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC4_IfcDoorPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PanelDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PanelOperation", new named_type(IFC4_IfcDoorPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelWidth", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC4_IfcDoorPanelPositionEnum_type), false)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcDoorStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC4_IfcDoorStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcDoorStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC4_IfcDoorStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), false)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDoorTypeEnum_type), false)); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcDoorTypeOperationEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("UserDefinedOperationType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDoorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcDraughtingPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcDraughtingPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSilencer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcDuctSilencerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcDuctSilencerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeStart", new named_type(IFC4_IfcVertex_type), false)); - attributes.push_back(new entity::attribute("EdgeEnd", new named_type(IFC4_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeStart", new named_type(IFC4_IfcVertex_type), false)); + attributes.push_back(new attribute("EdgeEnd", new named_type(IFC4_IfcVertex_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeGeometry", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeGeometry", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEdgeCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcEdgeLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricAppliance_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricApplianceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricApplianceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricDistributionBoard_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricDistributionBoardTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricDistributionBoardType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricFlowStorageDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricGenerator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricGeneratorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricGeneratorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricMotor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricMotorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricMotorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricTimeControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElectricTimeControlTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElectricTimeControlType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Tag", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementAssembly_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcElementAssemblyTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementAssemblyType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementComponent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementComponentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MethodOfMeasurement", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MethodOfMeasurement", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Quantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcElementarySurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEllipse_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SemiAxis1", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("SemiAxis2", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEllipseProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEnergyConversionDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEnergyConversionDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEngine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEngineTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEngineType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporativeCooler_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporativeCoolerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporativeCoolerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEvaporatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvaporatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), true)); - attributes.push_back(new entity::attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("EventOccurenceTime", new named_type(IFC4_IfcEventTime_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), true)); + attributes.push_back(new attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), true)); + attributes.push_back(new attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("EventOccurenceTime", new named_type(IFC4_IfcEventTime_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEvent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ActualDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("EarlyDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LateDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleDate", new named_type(IFC4_IfcDateTime_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ActualDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("EarlyDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LateDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleDate", new named_type(IFC4_IfcDateTime_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEventTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), false)); - attributes.push_back(new entity::attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcEventTypeEnum_type), false)); + attributes.push_back(new attribute("EventTriggerType", new named_type(IFC4_IfcEventTriggerTypeEnum_type), false)); + attributes.push_back(new attribute("UserDefinedEventTriggerType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcEventType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Properties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Properties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExtendedProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcExternalInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingReference", new named_type(IFC4_IfcExternalReference_type), false)); - attributes.push_back(new entity::attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingReference", new named_type(IFC4_IfcExternalReference_type), false)); + attributes.push_back(new attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalReferenceRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcExternalSpatialElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcExternalSpatialElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalSpatialElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternalSpatialStructureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternallyDefinedHatchStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternallyDefinedSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExternallyDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExtrudedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcExtrudedAreaSolidTapered_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFaceBound_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Bounds", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFaceBound_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcFace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcConnectedFaceSet_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FbsmFaces", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcConnectedFaceSet_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcFaceBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Bound", new named_type(IFC4_IfcLoop_type), false)); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Bound", new named_type(IFC4_IfcLoop_type), false)); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcFaceBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcFaceOuterBound_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FaceSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FaceSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFaceSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcFacetedBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Voids", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClosedShell_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcFacetedBrepWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TensionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("CompressionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TensionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("TensionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureX", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureY", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("CompressionFailureZ", new named_type(IFC4_IfcForceMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFailureConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFan_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFanTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFanType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFastenerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFeatureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFeatureElementAddition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFeatureElementSubtraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFillStyleSelect_type)), false)); - attributes.push_back(new entity::attribute("ModelorDraughting", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("FillStyles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcFillStyleSelect_type)), false)); + attributes.push_back(new attribute("ModelorDraughting", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFillAreaStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("HatchLineAppearance", new named_type(IFC4_IfcCurveStyle_type), false)); - attributes.push_back(new entity::attribute("StartOfNextHatchLine", new named_type(IFC4_IfcHatchLineDistanceSelect_type), false)); - attributes.push_back(new entity::attribute("PointOfReferenceHatchLine", new named_type(IFC4_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("PatternStart", new named_type(IFC4_IfcCartesianPoint_type), true)); - attributes.push_back(new entity::attribute("HatchLineAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("HatchLineAppearance", new named_type(IFC4_IfcCurveStyle_type), false)); + attributes.push_back(new attribute("StartOfNextHatchLine", new named_type(IFC4_IfcHatchLineDistanceSelect_type), false)); + attributes.push_back(new attribute("PointOfReferenceHatchLine", new named_type(IFC4_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("PatternStart", new named_type(IFC4_IfcCartesianPoint_type), true)); + attributes.push_back(new attribute("HatchLineAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFillAreaStyleHatching_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TilingPattern", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcVector_type)), false)); - attributes.push_back(new entity::attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyledItem_type)), false)); - attributes.push_back(new entity::attribute("TilingScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TilingPattern", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcVector_type)), false)); + attributes.push_back(new attribute("Tiles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyledItem_type)), false)); + attributes.push_back(new attribute("TilingScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFillAreaStyleTiles_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFilter_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFilterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFilterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFireSuppressionTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFireSuppressionTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFireSuppressionTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("FixedReference", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("FixedReference", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFixedReferenceSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowController_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowControllerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowInstrument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowInstrumentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowInstrumentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMeter_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFlowMeterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMeterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMovingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowMovingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowStorageDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowStorageDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTreatmentDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFlowTreatmentDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFooting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFootingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFootingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurnishingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurnishingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurniture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AssemblyPlace", new named_type(IFC4_IfcAssemblyPlaceEnum_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcFurnitureTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcFurnitureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeographicElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcGeographicElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeographicElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcGeometricCurveSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("CoordinateSpaceDimension", new named_type(IFC4_IfcDimensionCount_type), false)); - attributes.push_back(new entity::attribute("Precision", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("WorldCoordinateSystem", new named_type(IFC4_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("TrueNorth", new named_type(IFC4_IfcDirection_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("CoordinateSpaceDimension", new named_type(IFC4_IfcDimensionCount_type), false)); + attributes.push_back(new attribute("Precision", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("WorldCoordinateSystem", new named_type(IFC4_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("TrueNorth", new named_type(IFC4_IfcDirection_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeometricRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcGeometricRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ParentContext", new named_type(IFC4_IfcGeometricRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("TargetScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("TargetView", new named_type(IFC4_IfcGeometricProjectionEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedTargetView", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ParentContext", new named_type(IFC4_IfcGeometricRepresentationContext_type), false)); + attributes.push_back(new attribute("TargetScale", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("TargetView", new named_type(IFC4_IfcGeometricProjectionEnum_type), false)); + attributes.push_back(new attribute("UserDefinedTargetView", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGeometricRepresentationSubContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcGeometricSetSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Elements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcGeometricSetSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcGeometricSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcGridTypeEnum_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("UAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("VAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("WAxes", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcGridAxis_type)), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcGridTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGrid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("AxisTag", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AxisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("AxisTag", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("AxisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("SameSense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGridAxis_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementLocation", new named_type(IFC4_IfcVirtualGridIntersection_type), false)); - attributes.push_back(new entity::attribute("PlacementRefDirection", new named_type(IFC4_IfcGridPlacementDirectionSelect_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementLocation", new named_type(IFC4_IfcVirtualGridIntersection_type), false)); + attributes.push_back(new attribute("PlacementRefDirection", new named_type(IFC4_IfcGridPlacementDirectionSelect_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcGridPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BaseSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("AgreementFlag", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BaseSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("AgreementFlag", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcHalfSpaceSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHeatExchanger_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHeatExchangerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHeatExchangerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHumidifier_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcHumidifierTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcHumidifierType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("OverallDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("URLReference", new named_type(IFC4_IfcURIReference_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("URLReference", new named_type(IFC4_IfcURIReference_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcImageTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); - attributes.push_back(new entity::attribute("Opacity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Colours", new named_type(IFC4_IfcColourRgbList_type), false)); - attributes.push_back(new entity::attribute("ColourIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); + attributes.push_back(new attribute("Opacity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Colours", new named_type(IFC4_IfcColourRgbList_type), false)); + attributes.push_back(new attribute("ColourIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedColourMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Points", new named_type(IFC4_IfcCartesianPointList_type), false)); - attributes.push_back(new entity::attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSegmentIndexSelect_type)), true)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Points", new named_type(IFC4_IfcCartesianPointList_type), false)); + attributes.push_back(new attribute("Segments", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSegmentIndexSelect_type)), true)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedPolyCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CoordIndex", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcPositiveInteger_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CoordIndex", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcPositiveInteger_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcIndexedPolygonalFace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("InnerCoordIndices", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcPositiveInteger_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("InnerCoordIndices", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcPositiveInteger_type))), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedPolygonalFaceWithVoids_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); - attributes.push_back(new entity::attribute("TexCoords", new named_type(IFC4_IfcTextureVertexList_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappedTo", new named_type(IFC4_IfcTessellatedFaceSet_type), false)); + attributes.push_back(new attribute("TexCoords", new named_type(IFC4_IfcTextureVertexList_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TexCoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TexCoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIndexedTriangleTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcInterceptor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcInterceptorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcInterceptorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIntersectionCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcInventoryTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Jurisdiction", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); - attributes.push_back(new entity::attribute("LastUpdateDate", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); - attributes.push_back(new entity::attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcInventoryTypeEnum_type), true)); + attributes.push_back(new attribute("Jurisdiction", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("ResponsiblePersons", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); + attributes.push_back(new attribute("LastUpdateDate", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("CurrentValue", new named_type(IFC4_IfcCostValue_type), true)); + attributes.push_back(new attribute("OriginalValue", new named_type(IFC4_IfcCostValue_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcInventory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIrregularTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIrregularTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcIrregularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStamp", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStamp", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcIrregularTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcJunctionBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcJunctionBoxTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcJunctionBoxType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LegSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Width", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("LegSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLaborResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLaborResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLaborResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LagValue", new named_type(IFC4_IfcTimeOrRatioSelect_type), false)); - attributes.push_back(new entity::attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LagValue", new named_type(IFC4_IfcTimeOrRatioSelect_type), false)); + attributes.push_back(new attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLagTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLamp_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLampTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLampType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Version", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Publisher", new named_type(IFC4_IfcActorSelect_type), true)); - attributes.push_back(new entity::attribute("VersionDate", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Version", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Publisher", new named_type(IFC4_IfcActorSelect_type), true)); + attributes.push_back(new attribute("VersionDate", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLibraryInformation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Language", new named_type(IFC4_IfcLanguageId_type), true)); - attributes.push_back(new entity::attribute("ReferencedLibrary", new named_type(IFC4_IfcLibraryInformation_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Language", new named_type(IFC4_IfcLanguageId_type), true)); + attributes.push_back(new attribute("ReferencedLibrary", new named_type(IFC4_IfcLibraryInformation_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLibraryReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MainPlaneAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPlaneAngleMeasure_type)), false)); - attributes.push_back(new entity::attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLuminousIntensityDistributionMeasure_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MainPlaneAngle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("SecondaryPlaneAngle", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPlaneAngleMeasure_type)), false)); + attributes.push_back(new attribute("LuminousIntensity", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLuminousIntensityDistributionMeasure_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightDistributionData_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightFixture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLightFixtureTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightFixtureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LightDistributionCurve", new named_type(IFC4_IfcLightDistributionCurveEnum_type), false)); - attributes.push_back(new entity::attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLightDistributionData_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LightDistributionCurve", new named_type(IFC4_IfcLightDistributionCurveEnum_type), false)); + attributes.push_back(new attribute("DistributionData", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLightDistributionData_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcLightIntensityDistribution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LightColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("AmbientIntensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Intensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LightColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("AmbientIntensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Intensity", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceAmbient_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceDirectional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("ColourAppearance", new named_type(IFC4_IfcColourRgb_type), true)); - attributes.push_back(new entity::attribute("ColourTemperature", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), false)); - attributes.push_back(new entity::attribute("LuminousFlux", new named_type(IFC4_IfcLuminousFluxMeasure_type), false)); - attributes.push_back(new entity::attribute("LightEmissionSource", new named_type(IFC4_IfcLightEmissionSourceEnum_type), false)); - attributes.push_back(new entity::attribute("LightDistributionDataSource", new named_type(IFC4_IfcLightDistributionDataSourceSelect_type), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("ColourAppearance", new named_type(IFC4_IfcColourRgb_type), true)); + attributes.push_back(new attribute("ColourTemperature", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), false)); + attributes.push_back(new attribute("LuminousFlux", new named_type(IFC4_IfcLuminousFluxMeasure_type), false)); + attributes.push_back(new attribute("LightEmissionSource", new named_type(IFC4_IfcLightEmissionSourceEnum_type), false)); + attributes.push_back(new attribute("LightDistributionDataSource", new named_type(IFC4_IfcLightDistributionDataSourceSelect_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceGoniometric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ConstantAttenuation", new named_type(IFC4_IfcReal_type), false)); - attributes.push_back(new entity::attribute("DistanceAttenuation", new named_type(IFC4_IfcReal_type), false)); - attributes.push_back(new entity::attribute("QuadricAttenuation", new named_type(IFC4_IfcReal_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("ConstantAttenuation", new named_type(IFC4_IfcReal_type), false)); + attributes.push_back(new attribute("DistanceAttenuation", new named_type(IFC4_IfcReal_type), false)); + attributes.push_back(new attribute("QuadricAttenuation", new named_type(IFC4_IfcReal_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourcePositional_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("ConcentrationExponent", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("SpreadAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); - attributes.push_back(new entity::attribute("BeamWidthAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("ConcentrationExponent", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("SpreadAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); + attributes.push_back(new attribute("BeamWidthAngle", new named_type(IFC4_IfcPositivePlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcLightSourceSpot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Pnt", new named_type(IFC4_IfcCartesianPoint_type), false)); - attributes.push_back(new entity::attribute("Dir", new named_type(IFC4_IfcVector_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Pnt", new named_type(IFC4_IfcCartesianPoint_type), false)); + attributes.push_back(new attribute("Dir", new named_type(IFC4_IfcVector_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcLine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PlacementRelTo", new named_type(IFC4_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("RelativePlacement", new named_type(IFC4_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PlacementRelTo", new named_type(IFC4_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("RelativePlacement", new named_type(IFC4_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcLocalPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Outer", new named_type(IFC4_IfcClosedShell_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Outer", new named_type(IFC4_IfcClosedShell_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcManifoldSolidBrep_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Eastings", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Northings", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("OrthogonalHeight", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("XAxisAbscissa", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("XAxisOrdinate", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("Scale", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Eastings", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("Northings", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("OrthogonalHeight", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("XAxisAbscissa", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("XAxisOrdinate", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("Scale", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMapConversion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingSource", new named_type(IFC4_IfcRepresentationMap_type), false)); - attributes.push_back(new entity::attribute("MappingTarget", new named_type(IFC4_IfcCartesianTransformationOperator_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingSource", new named_type(IFC4_IfcRepresentationMap_type), false)); + attributes.push_back(new attribute("MappingTarget", new named_type(IFC4_IfcCartesianTransformationOperator_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcMappedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClassificationSelect_type)), false)); - attributes.push_back(new entity::attribute("ClassifiedMaterial", new named_type(IFC4_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MaterialClassifications", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcClassificationSelect_type)), false)); + attributes.push_back(new attribute("ClassifiedMaterial", new named_type(IFC4_IfcMaterial_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialClassificationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterial_type), false)); - attributes.push_back(new entity::attribute("Fraction", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterial_type), false)); + attributes.push_back(new attribute("Fraction", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialConstituent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("MaterialConstituents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterialConstituent_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("MaterialConstituents", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterialConstituent_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialConstituentSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcMaterialDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RepresentedMaterial", new named_type(IFC4_IfcMaterial_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RepresentedMaterial", new named_type(IFC4_IfcMaterial_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialDefinitionRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); - attributes.push_back(new entity::attribute("LayerThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("IsVentilated", new named_type(IFC4_IfcLogical_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); + attributes.push_back(new attribute("LayerThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), false)); + attributes.push_back(new attribute("IsVentilated", new named_type(IFC4_IfcLogical_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialLayer_type)), false)); - attributes.push_back(new entity::attribute("LayerSetName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MaterialLayers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialLayer_type)), false)); + attributes.push_back(new attribute("LayerSetName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayerSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ForLayerSet", new named_type(IFC4_IfcMaterialLayerSet_type), false)); - attributes.push_back(new entity::attribute("LayerSetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); - attributes.push_back(new entity::attribute("DirectionSense", new named_type(IFC4_IfcDirectionSenseEnum_type), false)); - attributes.push_back(new entity::attribute("OffsetFromReferenceLine", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ForLayerSet", new named_type(IFC4_IfcMaterialLayerSet_type), false)); + attributes.push_back(new attribute("LayerSetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); + attributes.push_back(new attribute("DirectionSense", new named_type(IFC4_IfcDirectionSenseEnum_type), false)); + attributes.push_back(new attribute("OffsetFromReferenceLine", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayerSetUsage_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("OffsetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); - attributes.push_back(new entity::attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("OffsetDirection", new named_type(IFC4_IfcLayerSetDirectionEnum_type), false)); + attributes.push_back(new attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialLayerWithOffsets_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Materials", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcMaterialList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); - attributes.push_back(new entity::attribute("Profile", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("Category", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterial_type), true)); + attributes.push_back(new attribute("Profile", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("Category", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfile_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("MaterialProfiles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialProfile_type)), false)); - attributes.push_back(new entity::attribute("CompositeProfile", new named_type(IFC4_IfcCompositeProfileDef_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("MaterialProfiles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcMaterialProfile_type)), false)); + attributes.push_back(new attribute("CompositeProfile", new named_type(IFC4_IfcCompositeProfileDef_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ForProfileSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); - attributes.push_back(new entity::attribute("CardinalPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); - attributes.push_back(new entity::attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ForProfileSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); + attributes.push_back(new attribute("CardinalPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); + attributes.push_back(new attribute("ReferenceExtent", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileSetUsage_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ForProfileEndSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); - attributes.push_back(new entity::attribute("CardinalEndPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ForProfileEndSet", new named_type(IFC4_IfcMaterialProfileSet_type), false)); + attributes.push_back(new attribute("CardinalEndPoint", new named_type(IFC4_IfcCardinalPointReference_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileSetUsageTapering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("OffsetValues", new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProfileWithOffsets_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Material", new named_type(IFC4_IfcMaterialDefinition_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Material", new named_type(IFC4_IfcMaterialDefinition_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingMaterial", new named_type(IFC4_IfcMaterial_type), false)); - attributes.push_back(new entity::attribute("RelatedMaterials", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingMaterial", new named_type(IFC4_IfcMaterial_type), false)); + attributes.push_back(new attribute("RelatedMaterials", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMaterial_type)), false)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMaterialRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcMaterialUsageDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ValueComponent", new named_type(IFC4_IfcValue_type), false)); - attributes.push_back(new entity::attribute("UnitComponent", new named_type(IFC4_IfcUnit_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ValueComponent", new named_type(IFC4_IfcValue_type), false)); + attributes.push_back(new attribute("UnitComponent", new named_type(IFC4_IfcUnit_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcMeasureWithUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMechanicalFastener_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMechanicalFastenerTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMechanicalFastenerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMedicalDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMedicalDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMedicalDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMemberStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMemberTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMemberType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Benchmark", new named_type(IFC4_IfcBenchmarkEnum_type), false)); - attributes.push_back(new entity::attribute("ValueSource", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DataValue", new named_type(IFC4_IfcMetricValueSelect_type), true)); - attributes.push_back(new entity::attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Benchmark", new named_type(IFC4_IfcBenchmarkEnum_type), false)); + attributes.push_back(new attribute("ValueSource", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("DataValue", new named_type(IFC4_IfcMetricValueSelect_type), true)); + attributes.push_back(new attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMetric_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(true); derived.push_back(false); IFC4_IfcMirroredProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Currency", new named_type(IFC4_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Currency", new named_type(IFC4_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcMonetaryUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMotorConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcMotorConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcMotorConnectionType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Dimensions", new named_type(IFC4_IfcDimensionalExponents_type), false)); - attributes.push_back(new entity::attribute("UnitType", new named_type(IFC4_IfcUnitEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Dimensions", new named_type(IFC4_IfcDimensionalExponents_type), false)); + attributes.push_back(new attribute("UnitType", new named_type(IFC4_IfcUnitEnum_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcNamedUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ObjectType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcObjectDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcObjectPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BenchmarkValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcConstraint_type)), true)); - attributes.push_back(new entity::attribute("LogicalAggregator", new named_type(IFC4_IfcLogicalOperatorEnum_type), true)); - attributes.push_back(new entity::attribute("ObjectiveQualifier", new named_type(IFC4_IfcObjectiveEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedQualifier", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BenchmarkValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcConstraint_type)), true)); + attributes.push_back(new attribute("LogicalAggregator", new named_type(IFC4_IfcLogicalOperatorEnum_type), true)); + attributes.push_back(new attribute("ObjectiveQualifier", new named_type(IFC4_IfcObjectiveEnum_type), false)); + attributes.push_back(new attribute("UserDefinedQualifier", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcObjective_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOccupantTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOccupantTypeEnum_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOccupant_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOffsetCurve2D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("RefDirection", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Distance", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SelfIntersect", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("RefDirection", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOffsetCurve3D_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcOpenShell_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOpeningElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOpeningElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOpeningElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOpeningStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingOrganization", new named_type(IFC4_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcOrganization_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingOrganization", new named_type(IFC4_IfcOrganization_type), false)); + attributes.push_back(new attribute("RelatedOrganizations", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcOrganization_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOrganizationRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EdgeElement", new named_type(IFC4_IfcEdge_type), false)); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EdgeElement", new named_type(IFC4_IfcEdge_type), false)); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(true); derived.push_back(false); derived.push_back(false); IFC4_IfcOrientedEdge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcOuterBoundaryCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOutlet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcOutletTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOutletType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("OwningUser", new named_type(IFC4_IfcPersonAndOrganization_type), false)); - attributes.push_back(new entity::attribute("OwningApplication", new named_type(IFC4_IfcApplication_type), false)); - attributes.push_back(new entity::attribute("State", new named_type(IFC4_IfcStateEnum_type), true)); - attributes.push_back(new entity::attribute("ChangeAction", new named_type(IFC4_IfcChangeActionEnum_type), true)); - attributes.push_back(new entity::attribute("LastModifiedDate", new named_type(IFC4_IfcTimeStamp_type), true)); - attributes.push_back(new entity::attribute("LastModifyingUser", new named_type(IFC4_IfcPersonAndOrganization_type), true)); - attributes.push_back(new entity::attribute("LastModifyingApplication", new named_type(IFC4_IfcApplication_type), true)); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC4_IfcTimeStamp_type), false)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("OwningUser", new named_type(IFC4_IfcPersonAndOrganization_type), false)); + attributes.push_back(new attribute("OwningApplication", new named_type(IFC4_IfcApplication_type), false)); + attributes.push_back(new attribute("State", new named_type(IFC4_IfcStateEnum_type), true)); + attributes.push_back(new attribute("ChangeAction", new named_type(IFC4_IfcChangeActionEnum_type), true)); + attributes.push_back(new attribute("LastModifiedDate", new named_type(IFC4_IfcTimeStamp_type), true)); + attributes.push_back(new attribute("LastModifyingUser", new named_type(IFC4_IfcPersonAndOrganization_type), true)); + attributes.push_back(new attribute("LastModifyingApplication", new named_type(IFC4_IfcApplication_type), true)); + attributes.push_back(new attribute("CreationDate", new named_type(IFC4_IfcTimeStamp_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcOwnerHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement2D_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement2D_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcParameterizedProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EdgeList", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcOrientedEdge_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPath_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("ReferenceCurve", new named_type(IFC4_IfcCurve_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("ReferenceCurve", new named_type(IFC4_IfcCurve_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPcurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LifeCyclePhase", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPerformanceHistoryTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LifeCyclePhase", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPerformanceHistoryTypeEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPerformanceHistory_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcPermeableCoveringOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcPermeableCoveringOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPermeableCoveringProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPermitTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPermitTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPermit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("FamilyName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("GivenName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); - attributes.push_back(new entity::attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("FamilyName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("GivenName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("MiddleNames", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("PrefixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("SuffixTitles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); + attributes.push_back(new attribute("Addresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcAddress_type)), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPerson_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ThePerson", new named_type(IFC4_IfcPerson_type), false)); - attributes.push_back(new entity::attribute("TheOrganization", new named_type(IFC4_IfcOrganization_type), false)); - attributes.push_back(new entity::attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ThePerson", new named_type(IFC4_IfcPerson_type), false)); + attributes.push_back(new attribute("TheOrganization", new named_type(IFC4_IfcOrganization_type), false)); + attributes.push_back(new attribute("Roles", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcActorRole_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPersonAndOrganization_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); - attributes.push_back(new entity::attribute("Discrimination", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Quality", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Usage", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("HasQuantities", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPhysicalQuantity_type)), false)); + attributes.push_back(new attribute("Discrimination", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Quality", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Usage", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPhysicalComplexQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPhysicalQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcNamedUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPhysicalSimpleQuantity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), true)); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC4_IfcPileConstructionEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), true)); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC4_IfcPileConstructionEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPile_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPileTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPileType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeFitting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeFittingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeFittingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPipeSegmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPipeSegmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Width", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("ColourComponents", new named_type(IFC4_IfcInteger_type), false)); - attributes.push_back(new entity::attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBinary_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Width", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("ColourComponents", new named_type(IFC4_IfcInteger_type), false)); + attributes.push_back(new attribute("Pixel", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBinary_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPixelTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Location", new named_type(IFC4_IfcCartesianPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Location", new named_type(IFC4_IfcCartesianPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPlacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlanarBox_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SizeInX", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("SizeInY", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SizeInX", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("SizeInY", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPlanarExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPlane_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlateStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPlateTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPlateType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("PointParameter", new named_type(IFC4_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("PointParameter", new named_type(IFC4_IfcParameterValue_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcPointOnCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("PointParameterU", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("PointParameterV", new named_type(IFC4_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("PointParameterU", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("PointParameterV", new named_type(IFC4_IfcParameterValue_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPointOnSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Polygon", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPolyLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); - attributes.push_back(new entity::attribute("PolygonalBoundary", new named_type(IFC4_IfcBoundedCurve_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), false)); + attributes.push_back(new attribute("PolygonalBoundary", new named_type(IFC4_IfcBoundedCurve_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPolygonalBoundedHalfSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Closed", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("Faces", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIndexedPolygonalFace_type)), false)); - attributes.push_back(new entity::attribute("PnIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Closed", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("Faces", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIndexedPolygonalFace_type)), false)); + attributes.push_back(new attribute("PnIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPolygonalFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Points", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcCartesianPoint_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPolyline_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPort_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("InternalLocation", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PostalBox", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Town", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Region", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("PostalCode", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Country", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("InternalLocation", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("AddressLines", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("PostalBox", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Town", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Region", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("PostalCode", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Country", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPostalAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedColour_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedCurveFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPreDefinedProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPreDefinedPropertySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPreDefinedTextFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcLayeredItem_type)), false)); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("AssignedItems", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcLayeredItem_type)), false)); + attributes.push_back(new attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPresentationLayerAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("LayerOn", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("LayerFrozen", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("LayerBlocked", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcPresentationStyle_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("LayerOn", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("LayerFrozen", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("LayerBlocked", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("LayerStyles", new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4_IfcPresentationStyle_type)), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPresentationLayerWithStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPresentationStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPresentationStyleSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPresentationStyleSelect_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcPresentationStyleAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProcedure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProcedureTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProcedureType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ObjectPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); - attributes.push_back(new entity::attribute("Representation", new named_type(IFC4_IfcProductRepresentation_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ObjectPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); + attributes.push_back(new attribute("Representation", new named_type(IFC4_IfcProductRepresentation_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProductDefinitionShape_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentation_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Representations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentation_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProductRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProfileType", new named_type(IFC4_IfcProfileTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ProfileName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProfileType", new named_type(IFC4_IfcProfileTypeEnum_type), false)); + attributes.push_back(new attribute("ProfileName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ProfileDefinition", new named_type(IFC4_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ProfileDefinition", new named_type(IFC4_IfcProfileDef_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProfileProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectLibrary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProjectOrderTypeEnum_type), true)); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProjectOrderTypeEnum_type), true)); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectOrder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("MapProjection", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("MapZone", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("MapUnit", new named_type(IFC4_IfcNamedUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("MapProjection", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("MapZone", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("MapUnit", new named_type(IFC4_IfcNamedUnit_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectedCRS_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProjectionElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProjectionElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProjectionElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcIdentifier_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcIdentifier_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcPropertyAbstraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("UpperBoundValue", new named_type(IFC4_IfcValue_type), true)); - attributes.push_back(new entity::attribute("LowerBoundValue", new named_type(IFC4_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("SetPointValue", new named_type(IFC4_IfcValue_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("UpperBoundValue", new named_type(IFC4_IfcValue_type), true)); + attributes.push_back(new attribute("LowerBoundValue", new named_type(IFC4_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("SetPointValue", new named_type(IFC4_IfcValue_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyBoundedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DependingProperty", new named_type(IFC4_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("DependantProperty", new named_type(IFC4_IfcProperty_type), false)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DependingProperty", new named_type(IFC4_IfcProperty_type), false)); + attributes.push_back(new attribute("DependantProperty", new named_type(IFC4_IfcProperty_type), false)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyDependencyRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("EnumerationReference", new named_type(IFC4_IfcPropertyEnumeration_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("EnumerationReference", new named_type(IFC4_IfcPropertyEnumeration_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyEnumeratedValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("EnumerationValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyEnumeration_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyListValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("UsageName", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("PropertyReference", new named_type(IFC4_IfcObjectReferenceSelect_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("UsageName", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("PropertyReference", new named_type(IFC4_IfcObjectReferenceSelect_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyReferenceValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("HasProperties", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProperty_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySetDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TemplateType", new named_type(IFC4_IfcPropertySetTemplateTypeEnum_type), true)); - attributes.push_back(new entity::attribute("ApplicableEntity", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TemplateType", new named_type(IFC4_IfcPropertySetTemplateTypeEnum_type), true)); + attributes.push_back(new attribute("ApplicableEntity", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("HasPropertyTemplates", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertyTemplate_type)), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySetTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("NominalValue", new named_type(IFC4_IfcValue_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("NominalValue", new named_type(IFC4_IfcValue_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertySingleValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("DefiningUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("DefinedUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("CurveInterpolation", new named_type(IFC4_IfcCurveInterpolationEnum_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("DefiningValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("DefinedValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("DefiningUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("DefinedUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("CurveInterpolation", new named_type(IFC4_IfcCurveInterpolationEnum_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyTableValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPropertyTemplateDefinition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDeviceTrippingUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDeviceTrippingUnitType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcProtectiveDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProtectiveDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProxyType", new named_type(IFC4_IfcObjectTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProxyType", new named_type(IFC4_IfcObjectTypeEnum_type), false)); + attributes.push_back(new attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcProxy_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPump_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcPumpTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcPumpType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AreaValue", new named_type(IFC4_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AreaValue", new named_type(IFC4_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("CountValue", new named_type(IFC4_IfcCountMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("CountValue", new named_type(IFC4_IfcCountMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityCount_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("LengthValue", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("LengthValue", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityLength_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantitySet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeValue", new named_type(IFC4_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeValue", new named_type(IFC4_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("VolumeValue", new named_type(IFC4_IfcVolumeMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("VolumeValue", new named_type(IFC4_IfcVolumeMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityVolume_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("WeightValue", new named_type(IFC4_IfcMassMeasure_type), false)); - attributes.push_back(new entity::attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("WeightValue", new named_type(IFC4_IfcMassMeasure_type), false)); + attributes.push_back(new attribute("Formula", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcQuantityWeight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRailing_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRailingTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRailingType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRamp_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRampFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRampFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRampTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRampType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type)), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRationalBSplineCurveWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WeightsData", new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcReal_type))), false)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRationalBSplineSurfaceWithKnots_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OuterFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("WallThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("OuterFilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangleHollowProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("XDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("XLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangularPyramid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); - attributes.push_back(new entity::attribute("U1", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V1", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("U2", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("V2", new named_type(IFC4_IfcParameterValue_type), false)); - attributes.push_back(new entity::attribute("Usense", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Vsense", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("BasisSurface", new named_type(IFC4_IfcSurface_type), false)); + attributes.push_back(new attribute("U1", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V1", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("U2", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("V2", new named_type(IFC4_IfcParameterValue_type), false)); + attributes.push_back(new attribute("Usense", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Vsense", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRectangularTrimmedSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("RecurrenceType", new named_type(IFC4_IfcRecurrenceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("DayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInMonthNumber_type)), true)); - attributes.push_back(new entity::attribute("WeekdayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInWeekNumber_type)), true)); - attributes.push_back(new entity::attribute("MonthComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMonthInYearNumber_type)), true)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("Interval", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("Occurrences", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("TimePeriods", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimePeriod_type)), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("RecurrenceType", new named_type(IFC4_IfcRecurrenceTypeEnum_type), false)); + attributes.push_back(new attribute("DayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInMonthNumber_type)), true)); + attributes.push_back(new attribute("WeekdayComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDayInWeekNumber_type)), true)); + attributes.push_back(new attribute("MonthComponent", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcMonthInYearNumber_type)), true)); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("Interval", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("Occurrences", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("TimePeriods", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimePeriod_type)), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRecurrencePattern_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("TypeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("AttributeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("InstanceName", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ListPositions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcInteger_type)), true)); - attributes.push_back(new entity::attribute("InnerReference", new named_type(IFC4_IfcReference_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("TypeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("AttributeIdentifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("InstanceName", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ListPositions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcInteger_type)), true)); + attributes.push_back(new attribute("InnerReference", new named_type(IFC4_IfcReference_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReference_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("TimeStep", new named_type(IFC4_IfcTimeMeasure_type), false)); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimeSeriesValue_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("TimeStep", new named_type(IFC4_IfcTimeMeasure_type), false)); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTimeSeriesValue_type)), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRegularTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TotalCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), false)); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); - attributes.push_back(new entity::attribute("EffectiveDepth", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("NominalBarDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarCount", new named_type(IFC4_IfcCountMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TotalCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), false)); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); + attributes.push_back(new attribute("EffectiveDepth", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("NominalBarDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarCount", new named_type(IFC4_IfcCountMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcementBarProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("DefinitionType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSectionReinforcementProperties_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("DefinitionType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ReinforcementSectionDefinitions", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSectionReinforcementProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcementDefinitionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), true)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), true)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingBar_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); - attributes.push_back(new entity::attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingBarTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("BarLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BarSurface", new named_type(IFC4_IfcReinforcingBarSurfaceEnum_type), true)); + attributes.push_back(new attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); std::vector derived; derived.reserve(16); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingBarType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SteelGrade", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), true)); std::vector derived; derived.reserve(18); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingMesh_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(11); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), false)); - attributes.push_back(new entity::attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); + std::vector attributes; attributes.reserve(11); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcReinforcingMeshTypeEnum_type), false)); + attributes.push_back(new attribute("MeshLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MeshWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarNominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarCrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("LongitudinalBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TransverseBarSpacing", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("BendingShapeCode", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("BendingParameters", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcBendingParameterSelect_type)), true)); std::vector derived; derived.reserve(20); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReinforcingMeshType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAggregates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatedObjectsType", new named_type(IFC4_IfcObjectTypeEnum_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + attributes.push_back(new attribute("RelatedObjectsType", new named_type(IFC4_IfcObjectTypeEnum_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssigns_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingActor", new named_type(IFC4_IfcActor_type), false)); - attributes.push_back(new entity::attribute("ActingRole", new named_type(IFC4_IfcActorRole_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingActor", new named_type(IFC4_IfcActor_type), false)); + attributes.push_back(new attribute("ActingRole", new named_type(IFC4_IfcActorRole_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToActor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingControl", new named_type(IFC4_IfcControl_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingControl", new named_type(IFC4_IfcControl_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingGroup", new named_type(IFC4_IfcGroup_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingGroup", new named_type(IFC4_IfcGroup_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Factor", new named_type(IFC4_IfcRatioMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Factor", new named_type(IFC4_IfcRatioMeasure_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToGroupByFactor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC4_IfcProcessSelect_type), false)); - attributes.push_back(new entity::attribute("QuantityInProcess", new named_type(IFC4_IfcMeasureWithUnit_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC4_IfcProcessSelect_type), false)); + attributes.push_back(new attribute("QuantityInProcess", new named_type(IFC4_IfcMeasureWithUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingProduct", new named_type(IFC4_IfcProductSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingProduct", new named_type(IFC4_IfcProductSelect_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingResource", new named_type(IFC4_IfcResourceSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingResource", new named_type(IFC4_IfcResourceSelect_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssignsToResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociates_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesApproval_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingClassification", new named_type(IFC4_IfcClassificationSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingClassification", new named_type(IFC4_IfcClassificationSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesClassification_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Intent", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Intent", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesConstraint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingDocument", new named_type(IFC4_IfcDocumentSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingDocument", new named_type(IFC4_IfcDocumentSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesDocument_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingLibrary", new named_type(IFC4_IfcLibrarySelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingLibrary", new named_type(IFC4_IfcLibrarySelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesLibrary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RelatingMaterial", new named_type(IFC4_IfcMaterialSelect_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RelatingMaterial", new named_type(IFC4_IfcMaterialSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelAssociatesMaterial_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnects_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); - attributes.push_back(new entity::attribute("RelatedConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("RelatingConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("RelatingPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("RelatedPriorities", new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4_IfcInteger_type)), false)); + attributes.push_back(new attribute("RelatedConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); + attributes.push_back(new attribute("RelatingConnectionType", new named_type(IFC4_IfcConnectionTypeEnum_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsPathElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC4_IfcDistributionElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC4_IfcDistributionElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsPortToElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RelatedPort", new named_type(IFC4_IfcPort_type), false)); - attributes.push_back(new entity::attribute("RealizingElement", new named_type(IFC4_IfcElement_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RelatingPort", new named_type(IFC4_IfcPort_type), false)); + attributes.push_back(new attribute("RelatedPort", new named_type(IFC4_IfcPort_type), false)); + attributes.push_back(new attribute("RealizingElement", new named_type(IFC4_IfcElement_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsPorts_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcStructuralActivityAssignmentSelect_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralActivity", new named_type(IFC4_IfcStructuralActivity_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcStructuralActivityAssignmentSelect_type), false)); + attributes.push_back(new attribute("RelatedStructuralActivity", new named_type(IFC4_IfcStructuralActivity_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("RelatingStructuralMember", new named_type(IFC4_IfcStructuralMember_type), false)); - attributes.push_back(new entity::attribute("RelatedStructuralConnection", new named_type(IFC4_IfcStructuralConnection_type), false)); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); - attributes.push_back(new entity::attribute("AdditionalConditions", new named_type(IFC4_IfcStructuralConnectionCondition_type), true)); - attributes.push_back(new entity::attribute("SupportedLength", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("RelatingStructuralMember", new named_type(IFC4_IfcStructuralMember_type), false)); + attributes.push_back(new attribute("RelatedStructuralConnection", new named_type(IFC4_IfcStructuralConnection_type), false)); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); + attributes.push_back(new attribute("AdditionalConditions", new named_type(IFC4_IfcStructuralConnectionCondition_type), true)); + attributes.push_back(new attribute("SupportedLength", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConnectionConstraint", new named_type(IFC4_IfcConnectionGeometry_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConnectionConstraint", new named_type(IFC4_IfcConnectionGeometry_type), false)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsWithEccentricity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcElement_type)), false)); - attributes.push_back(new entity::attribute("ConnectionType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RealizingElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcElement_type)), false)); + attributes.push_back(new attribute("ConnectionType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelConnectsWithRealizingElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelContainedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelCoversBldgElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingSpace", new named_type(IFC4_IfcSpace_type), false)); - attributes.push_back(new entity::attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingSpace", new named_type(IFC4_IfcSpace_type), false)); + attributes.push_back(new attribute("RelatedCoverings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcCovering_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelCoversSpaces_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingContext", new named_type(IFC4_IfcContext_type), false)); - attributes.push_back(new entity::attribute("RelatedDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingContext", new named_type(IFC4_IfcContext_type), false)); + attributes.push_back(new attribute("RelatedDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDefinitionSelect_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDeclares_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDecomposes_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefines_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC4_IfcObject_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC4_IfcObject_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatingPropertyDefinition", new named_type(IFC4_IfcPropertySetDefinitionSelect_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + attributes.push_back(new attribute("RelatingPropertyDefinition", new named_type(IFC4_IfcPropertySetDefinitionSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), false)); - attributes.push_back(new entity::attribute("RelatingTemplate", new named_type(IFC4_IfcPropertySetTemplate_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), false)); + attributes.push_back(new attribute("RelatingTemplate", new named_type(IFC4_IfcPropertySetTemplate_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); - attributes.push_back(new entity::attribute("RelatingType", new named_type(IFC4_IfcTypeObject_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcObject_type)), false)); + attributes.push_back(new attribute("RelatingType", new named_type(IFC4_IfcTypeObject_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelDefinesByType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingOpeningElement", new named_type(IFC4_IfcOpeningElement_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingOpeningElement", new named_type(IFC4_IfcOpeningElement_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelFillsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDistributionControlElement_type)), false)); - attributes.push_back(new entity::attribute("RelatingFlowElement", new named_type(IFC4_IfcDistributionFlowElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedControlElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcDistributionControlElement_type)), false)); + attributes.push_back(new attribute("RelatingFlowElement", new named_type(IFC4_IfcDistributionFlowElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelFlowControlElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("InterferenceGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("InterferenceType", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("ImpliedOrder", new simple_type(simple_type::logical_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("InterferenceGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("InterferenceType", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("ImpliedOrder", new simple_type(simple_type::logical_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelInterferesElements_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); - attributes.push_back(new entity::attribute("RelatedObjects", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingObject", new named_type(IFC4_IfcObjectDefinition_type), false)); + attributes.push_back(new attribute("RelatedObjects", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcObjectDefinition_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelNests_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedFeatureElement", new named_type(IFC4_IfcFeatureElementAddition_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedFeatureElement", new named_type(IFC4_IfcFeatureElementAddition_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelProjectsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); - attributes.push_back(new entity::attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedElements", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcProduct_type)), false)); + attributes.push_back(new attribute("RelatingStructure", new named_type(IFC4_IfcSpatialElement_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelReferencedInSpatialStructure_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingProcess", new named_type(IFC4_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("RelatedProcess", new named_type(IFC4_IfcProcess_type), false)); - attributes.push_back(new entity::attribute("TimeLag", new named_type(IFC4_IfcLagTime_type), true)); - attributes.push_back(new entity::attribute("SequenceType", new named_type(IFC4_IfcSequenceEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedSequenceType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingProcess", new named_type(IFC4_IfcProcess_type), false)); + attributes.push_back(new attribute("RelatedProcess", new named_type(IFC4_IfcProcess_type), false)); + attributes.push_back(new attribute("TimeLag", new named_type(IFC4_IfcLagTime_type), true)); + attributes.push_back(new attribute("SequenceType", new named_type(IFC4_IfcSequenceEnum_type), true)); + attributes.push_back(new attribute("UserDefinedSequenceType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSequence_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingSystem", new named_type(IFC4_IfcSystem_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcSpatialElement_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingSystem", new named_type(IFC4_IfcSystem_type), false)); + attributes.push_back(new attribute("RelatedBuildings", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcSpatialElement_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelServicesBuildings_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RelatingSpace", new named_type(IFC4_IfcSpaceBoundarySelect_type), false)); - attributes.push_back(new entity::attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); - attributes.push_back(new entity::attribute("PhysicalOrVirtualBoundary", new named_type(IFC4_IfcPhysicalOrVirtualEnum_type), false)); - attributes.push_back(new entity::attribute("InternalOrExternalBoundary", new named_type(IFC4_IfcInternalOrExternalEnum_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RelatingSpace", new named_type(IFC4_IfcSpaceBoundarySelect_type), false)); + attributes.push_back(new attribute("RelatedBuildingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("ConnectionGeometry", new named_type(IFC4_IfcConnectionGeometry_type), true)); + attributes.push_back(new attribute("PhysicalOrVirtualBoundary", new named_type(IFC4_IfcPhysicalOrVirtualEnum_type), false)); + attributes.push_back(new attribute("InternalOrExternalBoundary", new named_type(IFC4_IfcInternalOrExternalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSpaceBoundary_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParentBoundary", new named_type(IFC4_IfcRelSpaceBoundary1stLevel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParentBoundary", new named_type(IFC4_IfcRelSpaceBoundary1stLevel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSpaceBoundary1stLevel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CorrespondingBoundary", new named_type(IFC4_IfcRelSpaceBoundary2ndLevel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CorrespondingBoundary", new named_type(IFC4_IfcRelSpaceBoundary2ndLevel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelSpaceBoundary2ndLevel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); - attributes.push_back(new entity::attribute("RelatedOpeningElement", new named_type(IFC4_IfcFeatureElementSubtraction_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingBuildingElement", new named_type(IFC4_IfcElement_type), false)); + attributes.push_back(new attribute("RelatedOpeningElement", new named_type(IFC4_IfcFeatureElementSubtraction_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelVoidsElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParamLength", new named_type(IFC4_IfcParameterValue_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParamLength", new named_type(IFC4_IfcParameterValue_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcReparametrisedCompositeCurveSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ContextOfItems", new named_type(IFC4_IfcRepresentationContext_type), false)); - attributes.push_back(new entity::attribute("RepresentationIdentifier", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("RepresentationType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationItem_type)), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ContextOfItems", new named_type(IFC4_IfcRepresentationContext_type), false)); + attributes.push_back(new attribute("RepresentationIdentifier", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("RepresentationType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Items", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcRepresentationItem_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ContextIdentifier", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ContextType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ContextIdentifier", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ContextType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcRepresentationContext_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MappingOrigin", new named_type(IFC4_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("MappedRepresentation", new named_type(IFC4_IfcRepresentation_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MappingOrigin", new named_type(IFC4_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("MappedRepresentation", new named_type(IFC4_IfcRepresentation_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcRepresentationMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); - attributes.push_back(new entity::attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); + attributes.push_back(new attribute("RelatingApproval", new named_type(IFC4_IfcApproval_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceApprovalRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); - attributes.push_back(new entity::attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RelatingConstraint", new named_type(IFC4_IfcConstraint_type), false)); + attributes.push_back(new attribute("RelatedResourceObjects", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcResourceObjectSelect_type)), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceConstraintRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceLevelRelationship_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(15); - attributes.push_back(new entity::attribute("ScheduleWork", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ScheduleUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleContour", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("LevelingDelay", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("IsOverAllocated", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualWork", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ActualUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("RemainingWork", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("RemainingUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(15); + attributes.push_back(new attribute("ScheduleWork", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ScheduleUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleContour", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("LevelingDelay", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("IsOverAllocated", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualWork", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ActualUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("RemainingWork", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("RemainingUsage", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + attributes.push_back(new attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(18); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcResourceTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcAxis1Placement_type), false)); - attributes.push_back(new entity::attribute("Angle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcAxis1Placement_type), false)); + attributes.push_back(new attribute("Angle", new named_type(IFC4_IfcPlaneAngleMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRevolvedAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("EndSweptArea", new named_type(IFC4_IfcProfileDef_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRevolvedAreaSolidTapered_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("BottomRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("BottomRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRightCircularCone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Height", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRightCircularCylinder_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoof_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcRoofTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoofType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("GlobalId", new named_type(IFC4_IfcGloballyUniqueId_type), false)); - attributes.push_back(new entity::attribute("OwnerHistory", new named_type(IFC4_IfcOwnerHistory_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("GlobalId", new named_type(IFC4_IfcGloballyUniqueId_type), false)); + attributes.push_back(new attribute("OwnerHistory", new named_type(IFC4_IfcOwnerHistory_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoot_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("RoundingRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("RoundingRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcRoundedRectangleProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Prefix", new named_type(IFC4_IfcSIPrefix_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcSIUnitName_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Prefix", new named_type(IFC4_IfcSIPrefix_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcSIUnitName_type), false)); std::vector derived; derived.reserve(4); derived.push_back(true); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSIUnit_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSanitaryTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSanitaryTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSanitaryTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), true)); + attributes.push_back(new attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSchedulingTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSeamCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SectionType", new named_type(IFC4_IfcSectionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("StartProfile", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("EndProfile", new named_type(IFC4_IfcProfileDef_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SectionType", new named_type(IFC4_IfcSectionTypeEnum_type), false)); + attributes.push_back(new attribute("StartProfile", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("EndProfile", new named_type(IFC4_IfcProfileDef_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSectionProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LongitudinalStartPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("LongitudinalEndPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TransversePosition", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ReinforcementRole", new named_type(IFC4_IfcReinforcingBarRoleEnum_type), false)); - attributes.push_back(new entity::attribute("SectionDefinition", new named_type(IFC4_IfcSectionProperties_type), false)); - attributes.push_back(new entity::attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcReinforcementBarProperties_type)), false)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LongitudinalStartPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("LongitudinalEndPosition", new named_type(IFC4_IfcLengthMeasure_type), false)); + attributes.push_back(new attribute("TransversePosition", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("ReinforcementRole", new named_type(IFC4_IfcReinforcingBarRoleEnum_type), false)); + attributes.push_back(new attribute("SectionDefinition", new named_type(IFC4_IfcSectionProperties_type), false)); + attributes.push_back(new attribute("CrossSectionReinforcementDefinitions", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcReinforcementBarProperties_type)), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSectionReinforcementProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SpineCurve", new named_type(IFC4_IfcCompositeCurve_type), false)); - attributes.push_back(new entity::attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); - attributes.push_back(new entity::attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcAxis2Placement3D_type)), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SpineCurve", new named_type(IFC4_IfcCompositeCurve_type), false)); + attributes.push_back(new attribute("CrossSections", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcProfileDef_type)), false)); + attributes.push_back(new attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4_IfcAxis2Placement3D_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSectionedSpine_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSensor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSensorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSensorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShadingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcShadingDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShadingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcShapeModel_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProductDefinitional", new named_type(IFC4_IfcLogical_type), false)); - attributes.push_back(new entity::attribute("PartOfProductDefinitionShape", new named_type(IFC4_IfcProductRepresentationSelect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("ShapeRepresentations", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcShapeModel_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ProductDefinitional", new named_type(IFC4_IfcLogical_type), false)); + attributes.push_back(new attribute("PartOfProductDefinitionShape", new named_type(IFC4_IfcProductRepresentationSelect_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShapeAspect_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShapeModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcShapeRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcShell_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SbsmBoundary", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcShell_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcShellBasedSurfaceModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSimpleProperty_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("TemplateType", new named_type(IFC4_IfcSimplePropertyTemplateTypeEnum_type), true)); - attributes.push_back(new entity::attribute("PrimaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SecondaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Enumerators", new named_type(IFC4_IfcPropertyEnumeration_type), true)); - attributes.push_back(new entity::attribute("PrimaryUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("SecondaryUnit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("AccessState", new named_type(IFC4_IfcStateEnum_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("TemplateType", new named_type(IFC4_IfcSimplePropertyTemplateTypeEnum_type), true)); + attributes.push_back(new attribute("PrimaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("SecondaryMeasureType", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Enumerators", new named_type(IFC4_IfcPropertyEnumeration_type), true)); + attributes.push_back(new attribute("PrimaryUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("SecondaryUnit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("Expression", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("AccessState", new named_type(IFC4_IfcStateEnum_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSimplePropertyTemplate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RefLatitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefLongitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RefElevation", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LandTitleNumber", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("SiteAddress", new named_type(IFC4_IfcPostalAddress_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RefLatitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefLongitude", new named_type(IFC4_IfcCompoundPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RefElevation", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LandTitleNumber", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("SiteAddress", new named_type(IFC4_IfcPostalAddress_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSite_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlab_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlabElementedCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlabStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSlabTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlabType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SlippageX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageY", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("SlippageZ", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SlippageX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageY", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("SlippageZ", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSlippageConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSolarDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSolarDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSolarDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcSolidModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), true)); - attributes.push_back(new entity::attribute("ElevationWithFlooring", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), true)); + attributes.push_back(new attribute("ElevationWithFlooring", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpace_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpaceHeater_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceHeaterTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpaceHeaterType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpaceTypeEnum_type), false)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpaceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ElementType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("CompositionType", new named_type(IFC4_IfcElementCompositionEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("CompositionType", new named_type(IFC4_IfcElementCompositionEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialStructureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialStructureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialZone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), false)); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSpatialZoneTypeEnum_type), false)); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSpatialZoneType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSphere_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSphericalSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStackTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStackTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStackTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStair_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("NumberOfRisers", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("NumberOfTreads", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("RiserHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TreadLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("NumberOfRisers", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("NumberOfTreads", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("RiserHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("TreadLength", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStairFlight_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairFlightTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStairFlightType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStairTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStairType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("DestabilizingLoad", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("DestabilizingLoad", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("AppliedLoad", new named_type(IFC4_IfcStructuralLoad_type), false)); - attributes.push_back(new entity::attribute("GlobalOrLocal", new named_type(IFC4_IfcGlobalOrLocalEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("AppliedLoad", new named_type(IFC4_IfcStructuralLoad_type), false)); + attributes.push_back(new attribute("GlobalOrLocal", new named_type(IFC4_IfcGlobalOrLocalEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralActivity_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcAnalysisModelTypeEnum_type), false)); - attributes.push_back(new entity::attribute("OrientationOf2DPlane", new named_type(IFC4_IfcAxis2Placement3D_type), true)); - attributes.push_back(new entity::attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralLoadGroup_type)), true)); - attributes.push_back(new entity::attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralResultGroup_type)), true)); - attributes.push_back(new entity::attribute("SharedPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcAnalysisModelTypeEnum_type), false)); + attributes.push_back(new attribute("OrientationOf2DPlane", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + attributes.push_back(new attribute("LoadedBy", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralLoadGroup_type)), true)); + attributes.push_back(new attribute("HasResults", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStructuralResultGroup_type)), true)); + attributes.push_back(new attribute("SharedPlacement", new named_type(IFC4_IfcObjectPlacement_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralAnalysisModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AppliedCondition", new named_type(IFC4_IfcBoundaryCondition_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralConnectionCondition_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveMemberTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveMemberTypeEnum_type), false)); + attributes.push_back(new attribute("Axis", new named_type(IFC4_IfcDirection_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralCurveActivityTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralCurveReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLinearAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralLoad_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("SelfWeightCoefficients", new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcRatioMeasure_type)), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("SelfWeightCoefficients", new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcRatioMeasure_type)), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcStructuralLoadOrResult_type)), false)); - attributes.push_back(new entity::attribute("Locations", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type))), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Values", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcStructuralLoadOrResult_type)), false)); + attributes.push_back(new attribute("Locations", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4_IfcLengthMeasure_type))), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadConfiguration_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcLoadGroupTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionType", new named_type(IFC4_IfcActionTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ActionSource", new named_type(IFC4_IfcActionSourceTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Coefficient", new named_type(IFC4_IfcRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcLoadGroupTypeEnum_type), false)); + attributes.push_back(new attribute("ActionType", new named_type(IFC4_IfcActionTypeEnum_type), false)); + attributes.push_back(new attribute("ActionSource", new named_type(IFC4_IfcActionSourceTypeEnum_type), false)); + attributes.push_back(new attribute("Coefficient", new named_type(IFC4_IfcRatioMeasure_type), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("LinearForceX", new named_type(IFC4_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceY", new named_type(IFC4_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearForceZ", new named_type(IFC4_IfcLinearForceMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentX", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentY", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); - attributes.push_back(new entity::attribute("LinearMomentZ", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("LinearForceX", new named_type(IFC4_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceY", new named_type(IFC4_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearForceZ", new named_type(IFC4_IfcLinearForceMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentX", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentY", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); + attributes.push_back(new attribute("LinearMomentZ", new named_type(IFC4_IfcLinearMomentMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadLinearForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralLoadOrResult_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("PlanarForceX", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceY", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PlanarForceZ", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("PlanarForceX", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceY", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); + attributes.push_back(new attribute("PlanarForceZ", new named_type(IFC4_IfcPlanarForceMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadPlanarForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("DisplacementX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementY", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("DisplacementZ", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRX", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRY", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("RotationalDisplacementRZ", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("DisplacementX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementY", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("DisplacementZ", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRX", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRY", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("RotationalDisplacementRZ", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleDisplacement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Distortion", new named_type(IFC4_IfcCurvatureMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Distortion", new named_type(IFC4_IfcCurvatureMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleDisplacementDistortion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("ForceX", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceY", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("ForceZ", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentX", new named_type(IFC4_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentY", new named_type(IFC4_IfcTorqueMeasure_type), true)); - attributes.push_back(new entity::attribute("MomentZ", new named_type(IFC4_IfcTorqueMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("ForceX", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceY", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("ForceZ", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("MomentX", new named_type(IFC4_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentY", new named_type(IFC4_IfcTorqueMeasure_type), true)); + attributes.push_back(new attribute("MomentZ", new named_type(IFC4_IfcTorqueMeasure_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleForce_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("WarpingMoment", new named_type(IFC4_IfcWarpingMomentMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("WarpingMoment", new named_type(IFC4_IfcWarpingMomentMeasure_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadSingleForceWarping_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcStructuralLoadStatic_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("DeltaTConstant", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaTY", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); - attributes.push_back(new entity::attribute("DeltaTZ", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("DeltaTConstant", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaTY", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); + attributes.push_back(new attribute("DeltaTZ", new named_type(IFC4_IfcThermodynamicTemperatureMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralLoadTemperature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPlanarAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPointAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ConditionCoordinateSystem", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPointConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralPointReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("TheoryType", new named_type(IFC4_IfcAnalysisTheoryTypeEnum_type), false)); - attributes.push_back(new entity::attribute("ResultForLoadGroup", new named_type(IFC4_IfcStructuralLoadGroup_type), true)); - attributes.push_back(new entity::attribute("IsLinear", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("TheoryType", new named_type(IFC4_IfcAnalysisTheoryTypeEnum_type), false)); + attributes.push_back(new attribute("ResultForLoadGroup", new named_type(IFC4_IfcStructuralLoadGroup_type), true)); + attributes.push_back(new attribute("IsLinear", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralResultGroup_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ProjectedOrTrue", new named_type(IFC4_IfcProjectedOrTrueLengthEnum_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceAction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceConnection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceMemberTypeEnum_type), false)); - attributes.push_back(new entity::attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceMemberTypeEnum_type), false)); + attributes.push_back(new attribute("Thickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceMember_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceMemberVarying_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcStructuralSurfaceActivityTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStructuralSurfaceReaction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStyleModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Item", new named_type(IFC4_IfcRepresentationItem_type), true)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyleAssignmentSelect_type)), false)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Item", new named_type(IFC4_IfcRepresentationItem_type), true)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcStyleAssignmentSelect_type)), false)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStyledItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcStyledRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSubContractResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSubContractResourceTypeEnum_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSubContractResourceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ParentEdge", new named_type(IFC4_IfcEdge_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ParentEdge", new named_type(IFC4_IfcEdge_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSubedge_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Curve3D", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("AssociatedGeometry", new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4_IfcPcurve_type)), false)); - attributes.push_back(new entity::attribute("MasterRepresentation", new named_type(IFC4_IfcPreferredSurfaceCurveRepresentation_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Curve3D", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("AssociatedGeometry", new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4_IfcPcurve_type)), false)); + attributes.push_back(new attribute("MasterRepresentation", new named_type(IFC4_IfcPreferredSurfaceCurveRepresentation_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("ReferenceSurface", new named_type(IFC4_IfcSurface_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("ReferenceSurface", new named_type(IFC4_IfcSurface_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceCurveSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSurfaceFeatureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSurfaceFeatureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ExtrudedDirection", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceOfLinearExtrusion_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("AxisPosition", new named_type(IFC4_IfcAxis1Placement_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("AxisPosition", new named_type(IFC4_IfcAxis1Placement_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceOfRevolution_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("SurfaceReinforcement1", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); - attributes.push_back(new entity::attribute("SurfaceReinforcement2", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); - attributes.push_back(new entity::attribute("ShearReinforcement", new named_type(IFC4_IfcRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("SurfaceReinforcement1", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); + attributes.push_back(new attribute("SurfaceReinforcement2", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), true)); + attributes.push_back(new attribute("ShearReinforcement", new named_type(IFC4_IfcRatioMeasure_type), true)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceReinforcementArea_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Side", new named_type(IFC4_IfcSurfaceSide_type), false)); - attributes.push_back(new entity::attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC4_IfcSurfaceStyleElementSelect_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Side", new named_type(IFC4_IfcSurfaceSide_type), false)); + attributes.push_back(new attribute("Styles", new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC4_IfcSurfaceStyleElementSelect_type)), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("DiffuseReflectionColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("ReflectanceColour", new named_type(IFC4_IfcColourRgb_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("DiffuseReflectionColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("ReflectanceColour", new named_type(IFC4_IfcColourRgb_type), false)); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleLighting_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RefractionIndex", new named_type(IFC4_IfcReal_type), true)); - attributes.push_back(new entity::attribute("DispersionFactor", new named_type(IFC4_IfcReal_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RefractionIndex", new named_type(IFC4_IfcReal_type), true)); + attributes.push_back(new attribute("DispersionFactor", new named_type(IFC4_IfcReal_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleRefraction_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("DiffuseColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("TransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("ReflectionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularColour", new named_type(IFC4_IfcColourOrFactor_type), true)); - attributes.push_back(new entity::attribute("SpecularHighlight", new named_type(IFC4_IfcSpecularHighlightSelect_type), true)); - attributes.push_back(new entity::attribute("ReflectanceMethod", new named_type(IFC4_IfcReflectanceMethodEnum_type), false)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("DiffuseColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("TransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("DiffuseTransmissionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("ReflectionColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularColour", new named_type(IFC4_IfcColourOrFactor_type), true)); + attributes.push_back(new attribute("SpecularHighlight", new named_type(IFC4_IfcSpecularHighlightSelect_type), true)); + attributes.push_back(new attribute("ReflectanceMethod", new named_type(IFC4_IfcReflectanceMethodEnum_type), false)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleRendering_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SurfaceColour", new named_type(IFC4_IfcColourRgb_type), false)); - attributes.push_back(new entity::attribute("Transparency", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SurfaceColour", new named_type(IFC4_IfcColourRgb_type), false)); + attributes.push_back(new attribute("Transparency", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceStyleShading_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Textures", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcSurfaceStyleWithTextures_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("RepeatS", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("RepeatT", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Mode", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("TextureTransform", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), true)); - attributes.push_back(new entity::attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("RepeatS", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("RepeatT", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Mode", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("TextureTransform", new named_type(IFC4_IfcCartesianTransformationOperator2D_type), true)); + attributes.push_back(new attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcIdentifier_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSurfaceTexture_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptArea", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptArea", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptAreaSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("InnerRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); - attributes.push_back(new entity::attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Directrix", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Radius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("InnerRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("StartParam", new named_type(IFC4_IfcParameterValue_type), true)); + attributes.push_back(new attribute("EndParam", new named_type(IFC4_IfcParameterValue_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptDiskSolid_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptDiskSolidPolygonal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("SweptCurve", new named_type(IFC4_IfcProfileDef_type), false)); - attributes.push_back(new entity::attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("SweptCurve", new named_type(IFC4_IfcProfileDef_type), false)); + attributes.push_back(new attribute("Position", new named_type(IFC4_IfcAxis2Placement3D_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcSweptSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSwitchingDevice_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSwitchingDeviceTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSwitchingDeviceType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSystem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSystemFurnitureElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcSystemFurnitureElementTypeEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcSystemFurnitureElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(9); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("WebSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(9); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("WebEdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("WebSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableRow_type)), true)); - attributes.push_back(new entity::attribute("Columns", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableColumn_type)), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Rows", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableRow_type)), true)); + attributes.push_back(new attribute("Columns", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTableColumn_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTable_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); - attributes.push_back(new entity::attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("Identifier", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + attributes.push_back(new attribute("ReferencePath", new named_type(IFC4_IfcReference_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTableColumn_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); - attributes.push_back(new entity::attribute("IsHeading", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RowCells", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), true)); + attributes.push_back(new attribute("IsHeading", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcTableRow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTank_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTankTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTankType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Status", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("IsMilestone", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); - attributes.push_back(new entity::attribute("TaskTime", new named_type(IFC4_IfcTaskTime_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Status", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("IsMilestone", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Priority", new named_type(IFC4_IfcInteger_type), true)); + attributes.push_back(new attribute("TaskTime", new named_type(IFC4_IfcTaskTime_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTask_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(17); - attributes.push_back(new entity::attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), true)); - attributes.push_back(new entity::attribute("ScheduleDuration", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("EarlyStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("EarlyFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LateStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("LateFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("FreeFloat", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("IsCritical", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualDuration", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); - attributes.push_back(new entity::attribute("RemainingTime", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); + std::vector attributes; attributes.reserve(17); + attributes.push_back(new attribute("DurationType", new named_type(IFC4_IfcTaskDurationEnum_type), true)); + attributes.push_back(new attribute("ScheduleDuration", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ScheduleStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ScheduleFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("EarlyStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("EarlyFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LateStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("LateFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("FreeFloat", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("IsCritical", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("StatusTime", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualDuration", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("ActualStart", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("ActualFinish", new named_type(IFC4_IfcDateTime_type), true)); + attributes.push_back(new attribute("RemainingTime", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("Completion", new named_type(IFC4_IfcPositiveRatioMeasure_type), true)); std::vector derived; derived.reserve(20); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTaskTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Recurrence", new named_type(IFC4_IfcRecurrencePattern_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Recurrence", new named_type(IFC4_IfcRecurrencePattern_type), false)); std::vector derived; derived.reserve(21); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTaskTimeRecurring_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), false)); - attributes.push_back(new entity::attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTaskTypeEnum_type), false)); + attributes.push_back(new attribute("WorkMethod", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(11); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTaskType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("PagerNumber", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); - attributes.push_back(new entity::attribute("WWWHomePageURL", new named_type(IFC4_IfcURIReference_type), true)); - attributes.push_back(new entity::attribute("MessagingIDs", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcURIReference_type)), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("TelephoneNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("FacsimileNumbers", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("PagerNumber", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("ElectronicMailAddresses", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcLabel_type)), true)); + attributes.push_back(new attribute("WWWHomePageURL", new named_type(IFC4_IfcURIReference_type), true)); + attributes.push_back(new attribute("MessagingIDs", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcURIReference_type)), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTelecomAddress_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), true)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("TensionForce", new named_type(IFC4_IfcForceMeasure_type), true)); - attributes.push_back(new entity::attribute("PreStress", new named_type(IFC4_IfcPressureMeasure_type), true)); - attributes.push_back(new entity::attribute("FrictionCoefficient", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("AnchorageSlip", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MinCurvatureRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), true)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("TensionForce", new named_type(IFC4_IfcForceMeasure_type), true)); + attributes.push_back(new attribute("PreStress", new named_type(IFC4_IfcPressureMeasure_type), true)); + attributes.push_back(new attribute("FrictionCoefficient", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("AnchorageSlip", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("MinCurvatureRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(17); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendon_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendonAnchor_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonAnchorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendonAnchorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), false)); - attributes.push_back(new entity::attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); - attributes.push_back(new entity::attribute("SheathDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTendonTypeEnum_type), false)); + attributes.push_back(new attribute("NominalDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("CrossSectionArea", new named_type(IFC4_IfcAreaMeasure_type), true)); + attributes.push_back(new attribute("SheathDiameter", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTendonType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new named_type(IFC4_IfcCartesianPointList3D_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new named_type(IFC4_IfcCartesianPointList3D_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTessellatedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcTessellatedItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Literal", new named_type(IFC4_IfcPresentableText_type), false)); - attributes.push_back(new entity::attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); - attributes.push_back(new entity::attribute("Path", new named_type(IFC4_IfcTextPath_type), false)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Literal", new named_type(IFC4_IfcPresentableText_type), false)); + attributes.push_back(new attribute("Placement", new named_type(IFC4_IfcAxis2Placement_type), false)); + attributes.push_back(new attribute("Path", new named_type(IFC4_IfcTextPath_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextLiteral_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Extent", new named_type(IFC4_IfcPlanarExtent_type), false)); - attributes.push_back(new entity::attribute("BoxAlignment", new named_type(IFC4_IfcBoxAlignment_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Extent", new named_type(IFC4_IfcPlanarExtent_type), false)); + attributes.push_back(new attribute("BoxAlignment", new named_type(IFC4_IfcBoxAlignment_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextLiteralWithExtent_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("TextCharacterAppearance", new named_type(IFC4_IfcTextStyleForDefinedFont_type), true)); - attributes.push_back(new entity::attribute("TextStyle", new named_type(IFC4_IfcTextStyleTextModel_type), true)); - attributes.push_back(new entity::attribute("TextFontStyle", new named_type(IFC4_IfcTextFontSelect_type), false)); - attributes.push_back(new entity::attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("TextCharacterAppearance", new named_type(IFC4_IfcTextStyleForDefinedFont_type), true)); + attributes.push_back(new attribute("TextStyle", new named_type(IFC4_IfcTextStyleTextModel_type), true)); + attributes.push_back(new attribute("TextFontStyle", new named_type(IFC4_IfcTextFontSelect_type), false)); + attributes.push_back(new attribute("ModelOrDraughting", new named_type(IFC4_IfcBoolean_type), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTextFontName_type)), false)); - attributes.push_back(new entity::attribute("FontStyle", new named_type(IFC4_IfcFontStyle_type), true)); - attributes.push_back(new entity::attribute("FontVariant", new named_type(IFC4_IfcFontVariant_type), true)); - attributes.push_back(new entity::attribute("FontWeight", new named_type(IFC4_IfcFontWeight_type), true)); - attributes.push_back(new entity::attribute("FontSize", new named_type(IFC4_IfcSizeSelect_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("FontFamily", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcTextFontName_type)), false)); + attributes.push_back(new attribute("FontStyle", new named_type(IFC4_IfcFontStyle_type), true)); + attributes.push_back(new attribute("FontVariant", new named_type(IFC4_IfcFontVariant_type), true)); + attributes.push_back(new attribute("FontWeight", new named_type(IFC4_IfcFontWeight_type), true)); + attributes.push_back(new attribute("FontSize", new named_type(IFC4_IfcSizeSelect_type), false)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyleFontModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Colour", new named_type(IFC4_IfcColour_type), false)); - attributes.push_back(new entity::attribute("BackgroundColour", new named_type(IFC4_IfcColour_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Colour", new named_type(IFC4_IfcColour_type), false)); + attributes.push_back(new attribute("BackgroundColour", new named_type(IFC4_IfcColour_type), true)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyleForDefinedFont_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("TextIndent", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextAlign", new named_type(IFC4_IfcTextAlignment_type), true)); - attributes.push_back(new entity::attribute("TextDecoration", new named_type(IFC4_IfcTextDecoration_type), true)); - attributes.push_back(new entity::attribute("LetterSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("WordSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); - attributes.push_back(new entity::attribute("TextTransform", new named_type(IFC4_IfcTextTransformation_type), true)); - attributes.push_back(new entity::attribute("LineHeight", new named_type(IFC4_IfcSizeSelect_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("TextIndent", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextAlign", new named_type(IFC4_IfcTextAlignment_type), true)); + attributes.push_back(new attribute("TextDecoration", new named_type(IFC4_IfcTextDecoration_type), true)); + attributes.push_back(new attribute("LetterSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("WordSpacing", new named_type(IFC4_IfcSizeSelect_type), true)); + attributes.push_back(new attribute("TextTransform", new named_type(IFC4_IfcTextTransformation_type), true)); + attributes.push_back(new attribute("LineHeight", new named_type(IFC4_IfcSizeSelect_type), true)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextStyleTextModel_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Maps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Maps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcSurfaceTexture_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTextureCoordinate_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Mode", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcReal_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Mode", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Parameter", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcReal_type)), true)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextureCoordinateGenerator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Vertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcTextureVertex_type)), false)); - attributes.push_back(new entity::attribute("MappedTo", new named_type(IFC4_IfcFace_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Vertices", new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4_IfcTextureVertex_type)), false)); + attributes.push_back(new attribute("MappedTo", new named_type(IFC4_IfcFace_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTextureMap_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Coordinates", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTextureVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("TexCoordsList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type))), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("TexCoordsList", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcParameterValue_type))), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTextureVertexList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC4_IfcTime_type), false)); - attributes.push_back(new entity::attribute("EndTime", new named_type(IFC4_IfcTime_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("StartTime", new named_type(IFC4_IfcTime_type), false)); + attributes.push_back(new attribute("EndTime", new named_type(IFC4_IfcTime_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcTimePeriod_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); - attributes.push_back(new entity::attribute("Name", new named_type(IFC4_IfcLabel_type), false)); - attributes.push_back(new entity::attribute("Description", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("EndTime", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("TimeSeriesDataType", new named_type(IFC4_IfcTimeSeriesDataTypeEnum_type), false)); - attributes.push_back(new entity::attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), false)); - attributes.push_back(new entity::attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); + std::vector attributes; attributes.reserve(8); + attributes.push_back(new attribute("Name", new named_type(IFC4_IfcLabel_type), false)); + attributes.push_back(new attribute("Description", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("EndTime", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("TimeSeriesDataType", new named_type(IFC4_IfcTimeSeriesDataTypeEnum_type), false)); + attributes.push_back(new attribute("DataOrigin", new named_type(IFC4_IfcDataOriginEnum_type), false)); + attributes.push_back(new attribute("UserDefinedDataOrigin", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Unit", new named_type(IFC4_IfcUnit_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTimeSeries_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("ListValues", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcValue_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcTimeSeriesValue_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcTopologicalRepresentationItem_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(4); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTopologyRepresentation_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("MajorRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("MinorRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("MajorRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("MinorRadius", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); std::vector derived; derived.reserve(3); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcToroidalSurface_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransformer_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransformerTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransformerType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransportElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTransportElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTransportElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("BottomXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("TopXOffset", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("BottomXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("YDim", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("TopXOffset", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(7); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTrapeziumProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("Normals", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcParameterValue_type))), true)); - attributes.push_back(new entity::attribute("Closed", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("CoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), false)); - attributes.push_back(new entity::attribute("PnIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("Normals", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcParameterValue_type))), true)); + attributes.push_back(new attribute("Closed", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("CoordIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4_IfcPositiveInteger_type))), false)); + attributes.push_back(new attribute("PnIndex", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcPositiveInteger_type)), true)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTriangulatedFaceSet_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); - attributes.push_back(new entity::attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); - attributes.push_back(new entity::attribute("SenseAgreement", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("MasterRepresentation", new named_type(IFC4_IfcTrimmingPreference_type), false)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("BasisCurve", new named_type(IFC4_IfcCurve_type), false)); + attributes.push_back(new attribute("Trim1", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("Trim2", new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4_IfcTrimmingSelect_type)), false)); + attributes.push_back(new attribute("SenseAgreement", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("MasterRepresentation", new named_type(IFC4_IfcTrimmingPreference_type), false)); std::vector derived; derived.reserve(5); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTrimmedCurve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTubeBundle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcTubeBundleTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTubeBundleType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("ApplicableOccurrence", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("ApplicableOccurrence", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("HasPropertySets", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPropertySetDefinition_type)), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeObject_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ProcessType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ProcessType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeProcess_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentationMap_type)), true)); - attributes.push_back(new entity::attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("RepresentationMaps", new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4_IfcRepresentationMap_type)), true)); + attributes.push_back(new attribute("Tag", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeProduct_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); - attributes.push_back(new entity::attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); - attributes.push_back(new entity::attribute("ResourceType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("Identification", new named_type(IFC4_IfcIdentifier_type), true)); + attributes.push_back(new attribute("LongDescription", new named_type(IFC4_IfcText_type), true)); + attributes.push_back(new attribute("ResourceType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcTypeResource_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FlangeSlope", new named_type(IFC4_IfcPlaneAngleMeasure_type), true)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcUnit_type)), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("Units", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcUnit_type)), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcUnitAssignment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryControlElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryControlElementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryControlElementType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryEquipment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcUnitaryEquipmentTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcUnitaryEquipmentType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcValve_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcValveTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcValveType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); - attributes.push_back(new entity::attribute("Magnitude", new named_type(IFC4_IfcLengthMeasure_type), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("Orientation", new named_type(IFC4_IfcDirection_type), false)); + attributes.push_back(new attribute("Magnitude", new named_type(IFC4_IfcLengthMeasure_type), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcVector_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(0); IFC4_IfcVertex_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LoopVertex", new named_type(IFC4_IfcVertex_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LoopVertex", new named_type(IFC4_IfcVertex_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcVertexLoop_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("VertexGeometry", new named_type(IFC4_IfcPoint_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("VertexGeometry", new named_type(IFC4_IfcPoint_type), false)); std::vector derived; derived.reserve(1); derived.push_back(false); IFC4_IfcVertexPoint_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVibrationIsolator_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcVibrationIsolatorTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVibrationIsolatorType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(8); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVirtualElement_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcGridAxis_type)), false)); - attributes.push_back(new entity::attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new attribute("IntersectingAxes", new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4_IfcGridAxis_type)), false)); + attributes.push_back(new attribute("OffsetDistances", new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4_IfcLengthMeasure_type)), false)); std::vector derived; derived.reserve(2); derived.push_back(false); derived.push_back(false); IFC4_IfcVirtualGridIntersection_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcVoidingFeatureTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcVoidingFeatureTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcVoidingFeature_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWall_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWallElementedCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWallStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWallTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWallType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWasteTerminal_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), false)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWasteTerminalTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWasteTerminalType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), true)); - attributes.push_back(new entity::attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OverallHeight", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("OverallWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), true)); + attributes.push_back(new attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), true)); + attributes.push_back(new attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindow_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("MullionThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("FirstMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("SecondMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); - attributes.push_back(new entity::attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new attribute("LiningDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("TransomThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("MullionThickness", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("FirstTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondTransomOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("FirstMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("SecondMullionOffset", new named_type(IFC4_IfcNormalisedRatioMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + attributes.push_back(new attribute("LiningOffset", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetX", new named_type(IFC4_IfcLengthMeasure_type), true)); + attributes.push_back(new attribute("LiningToPanelOffsetY", new named_type(IFC4_IfcLengthMeasure_type), true)); std::vector derived; derived.reserve(16); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowLiningProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcWindowPanelOperationEnum_type), false)); - attributes.push_back(new entity::attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); - attributes.push_back(new entity::attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcWindowPanelOperationEnum_type), false)); + attributes.push_back(new attribute("PanelPosition", new named_type(IFC4_IfcWindowPanelPositionEnum_type), false)); + attributes.push_back(new attribute("FrameDepth", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("FrameThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), true)); + attributes.push_back(new attribute("ShapeAspectStyle", new named_type(IFC4_IfcShapeAspect_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowPanelProperties_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(0); + std::vector attributes; attributes.reserve(0); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowStandardCase_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("ConstructionType", new named_type(IFC4_IfcWindowStyleConstructionEnum_type), false)); - attributes.push_back(new entity::attribute("OperationType", new named_type(IFC4_IfcWindowStyleOperationEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); - attributes.push_back(new entity::attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("ConstructionType", new named_type(IFC4_IfcWindowStyleConstructionEnum_type), false)); + attributes.push_back(new attribute("OperationType", new named_type(IFC4_IfcWindowStyleOperationEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), false)); + attributes.push_back(new attribute("Sizeable", new named_type(IFC4_IfcBoolean_type), false)); std::vector derived; derived.reserve(12); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowStyle_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), false)); - attributes.push_back(new entity::attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), false)); - attributes.push_back(new entity::attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); - attributes.push_back(new entity::attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWindowTypeEnum_type), false)); + attributes.push_back(new attribute("PartitioningType", new named_type(IFC4_IfcWindowTypePartitioningEnum_type), false)); + attributes.push_back(new attribute("ParameterTakesPrecedence", new named_type(IFC4_IfcBoolean_type), true)); + attributes.push_back(new attribute("UserDefinedPartitioningType", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWindowType_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("WorkingTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); - attributes.push_back(new entity::attribute("ExceptionTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWorkCalendarTypeEnum_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("WorkingTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); + attributes.push_back(new attribute("ExceptionTimes", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcWorkTime_type)), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWorkCalendarTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkCalendar_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::attribute("CreationDate", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); - attributes.push_back(new entity::attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); - attributes.push_back(new entity::attribute("Duration", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); - attributes.push_back(new entity::attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); - attributes.push_back(new entity::attribute("FinishTime", new named_type(IFC4_IfcDateTime_type), true)); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new attribute("CreationDate", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("Creators", new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4_IfcPerson_type)), true)); + attributes.push_back(new attribute("Purpose", new named_type(IFC4_IfcLabel_type), true)); + attributes.push_back(new attribute("Duration", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("TotalFloat", new named_type(IFC4_IfcDuration_type), true)); + attributes.push_back(new attribute("StartTime", new named_type(IFC4_IfcDateTime_type), false)); + attributes.push_back(new attribute("FinishTime", new named_type(IFC4_IfcDateTime_type), true)); std::vector derived; derived.reserve(13); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkControl_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWorkPlanTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWorkPlanTypeEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkPlan_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("PredefinedType", new named_type(IFC4_IfcWorkScheduleTypeEnum_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4_IfcWorkScheduleTypeEnum_type), true)); std::vector derived; derived.reserve(14); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkSchedule_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::attribute("RecurrencePattern", new named_type(IFC4_IfcRecurrencePattern_type), true)); - attributes.push_back(new entity::attribute("Start", new named_type(IFC4_IfcDate_type), true)); - attributes.push_back(new entity::attribute("Finish", new named_type(IFC4_IfcDate_type), true)); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new attribute("RecurrencePattern", new named_type(IFC4_IfcRecurrencePattern_type), true)); + attributes.push_back(new attribute("Start", new named_type(IFC4_IfcDate_type), true)); + attributes.push_back(new attribute("Finish", new named_type(IFC4_IfcDate_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcWorkTime_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); - attributes.push_back(new entity::attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); - attributes.push_back(new entity::attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new attribute("Depth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeWidth", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("WebThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FlangeThickness", new named_type(IFC4_IfcPositiveLengthMeasure_type), false)); + attributes.push_back(new attribute("FilletRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); + attributes.push_back(new attribute("EdgeRadius", new named_type(IFC4_IfcNonNegativeLengthMeasure_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcZShapeProfileDef_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new attribute("LongName", new named_type(IFC4_IfcLabel_type), true)); std::vector derived; derived.reserve(6); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4_IfcZone_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsActingUpon", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToActor_type, IFC4_IfcRelAssignsToActor_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsActingUpon", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToActor_type, IFC4_IfcRelAssignsToActor_type->attributes()[0])); IFC4_IfcActor_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcActorRole_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("OfPerson", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPerson_type, IFC4_IfcPerson_type->attributes()[7])); - attributes.push_back(new entity::inverse_attribute("OfOrganization", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcOrganization_type, IFC4_IfcOrganization_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("OfPerson", inverse_attribute::set_type, 0, -1, IFC4_IfcPerson_type, IFC4_IfcPerson_type->attributes()[7])); + attributes.push_back(new inverse_attribute("OfOrganization", inverse_attribute::set_type, 0, -1, IFC4_IfcOrganization_type, IFC4_IfcOrganization_type->attributes()[4])); IFC4_IfcAddress_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC4_IfcAnnotation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcAppliedValue_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(5); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ApprovedObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesApproval_type, IFC4_IfcRelAssociatesApproval_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ApprovedResources", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(5); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ApprovedObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesApproval_type, IFC4_IfcRelAssociatesApproval_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ApprovedResources", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC4_IfcApprovalRelationship_type, IFC4_IfcApprovalRelationship_type->attributes()[0])); IFC4_IfcApproval_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ClassificationForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ClassificationForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); IFC4_IfcClassification_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ClassificationRefForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ClassificationRefForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesClassification_type, IFC4_IfcRelAssociatesClassification_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcClassificationReference_type, IFC4_IfcClassificationReference_type->attributes()[0])); IFC4_IfcClassificationReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("UsingCurves", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcCompositeCurve_type, IFC4_IfcCompositeCurve_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("UsingCurves", inverse_attribute::set_type, 1, -1, IFC4_IfcCompositeCurve_type, IFC4_IfcCompositeCurve_type->attributes()[0])); IFC4_IfcCompositeCurveSegment_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PropertiesForConstraint", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PropertiesForConstraint", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[0])); IFC4_IfcConstraint_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Declares", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Declares", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[0])); IFC4_IfcContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcContextDependentUnit_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Controls", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToControl_type, IFC4_IfcRelAssignsToControl_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Controls", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToControl_type, IFC4_IfcRelAssignsToControl_type->attributes()[0])); IFC4_IfcControl_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcConversionBasedUnit_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasCoordinateOperation", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasCoordinateOperation", inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); IFC4_IfcCoordinateReferenceSystem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("CoversSpaces", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("CoversElements", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("CoversSpaces", inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[1])); + attributes.push_back(new inverse_attribute("CoversElements", inverse_attribute::set_type, 0, 1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[1])); IFC4_IfcCovering_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToFlowElement", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToFlowElement", inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[0])); IFC4_IfcDistributionControlElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasPorts", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasPorts", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[1])); IFC4_IfcDistributionElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasControlElements", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasControlElements", inverse_attribute::set_type, 0, 1, IFC4_IfcRelFlowControlElements_type, IFC4_IfcRelFlowControlElements_type->attributes()[1])); IFC4_IfcDistributionFlowElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("DocumentInfoForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasDocumentReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentReference_type, IFC4_IfcDocumentReference_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPointedTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsPointer", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("DocumentInfoForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasDocumentReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentReference_type, IFC4_IfcDocumentReference_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPointedTo", inverse_attribute::set_type, 0, -1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsPointer", inverse_attribute::set_type, 0, 1, IFC4_IfcDocumentInformationRelationship_type, IFC4_IfcDocumentInformationRelationship_type->attributes()[0])); IFC4_IfcDocumentInformation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("DocumentRefForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("DocumentRefForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesDocument_type, IFC4_IfcRelAssociatesDocument_type->attributes()[0])); IFC4_IfcDocumentReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(12); - attributes.push_back(new entity::inverse_attribute("FillsVoids", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsInterferedByElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("InterferesElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasProjections", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedInStructures", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasOpenings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsConnectionRealization", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsWithRealizingElements_type, IFC4_IfcRelConnectsWithRealizingElements_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ProvidesBoundaries", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[0])); + std::vector attributes; attributes.reserve(12); + attributes.push_back(new inverse_attribute("FillsVoids", inverse_attribute::set_type, 0, 1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsInterferedByElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[1])); + attributes.push_back(new inverse_attribute("InterferesElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelInterferesElements_type, IFC4_IfcRelInterferesElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasProjections", inverse_attribute::set_type, 0, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedInStructures", inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasOpenings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsConnectionRealization", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsWithRealizingElements_type, IFC4_IfcRelConnectsWithRealizingElements_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ProvidesBoundaries", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsElements_type, IFC4_IfcRelConnectsElements_type->attributes()[2])); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversBldgElements_type, IFC4_IfcRelCoversBldgElements_type->attributes()[0])); IFC4_IfcElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ExternalReferenceForResources", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ExternalReferenceForResources", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[0])); IFC4_IfcExternalReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("BoundedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("BoundedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); IFC4_IfcExternalSpatialElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasTextureMaps", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcTextureMap_type, IFC4_IfcTextureMap_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasTextureMaps", inverse_attribute::set_type, 0, -1, IFC4_IfcTextureMap_type, IFC4_IfcTextureMap_type->attributes()[1])); IFC4_IfcFace_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ProjectsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ProjectsElements", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelProjectsElement_type, IFC4_IfcRelProjectsElement_type->attributes()[1])); IFC4_IfcFeatureElementAddition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("VoidsElements", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("VoidsElements", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcRelVoidsElement_type, IFC4_IfcRelVoidsElement_type->attributes()[1])); IFC4_IfcFeatureElementSubtraction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasSubContexts", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcGeometricRepresentationSubContext_type, IFC4_IfcGeometricRepresentationSubContext_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasCoordinateOperation", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasSubContexts", inverse_attribute::set_type, 0, -1, IFC4_IfcGeometricRepresentationSubContext_type, IFC4_IfcGeometricRepresentationSubContext_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasCoordinateOperation", inverse_attribute::set_type, 0, 1, IFC4_IfcCoordinateOperation_type, IFC4_IfcCoordinateOperation_type->attributes()[0])); IFC4_IfcGeometricRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ContainedInStructure", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ContainedInStructure", inverse_attribute::set_type, 0, 1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[0])); IFC4_IfcGrid_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("PartOfW", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("PartOfV", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfU", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasIntersections", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcVirtualGridIntersection_type, IFC4_IfcVirtualGridIntersection_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("PartOfW", inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[2])); + attributes.push_back(new inverse_attribute("PartOfV", inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfU", inverse_attribute::set_type, 0, 1, IFC4_IfcGrid_type, IFC4_IfcGrid_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasIntersections", inverse_attribute::set_type, 0, -1, IFC4_IfcVirtualGridIntersection_type, IFC4_IfcVirtualGridIntersection_type->attributes()[0])); IFC4_IfcGridAxis_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("IsGroupedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToGroup_type, IFC4_IfcRelAssignsToGroup_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("IsGroupedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToGroup_type, IFC4_IfcRelAssignsToGroup_type->attributes()[0])); IFC4_IfcGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToFaceSet", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcPolygonalFaceSet_type, IFC4_IfcPolygonalFaceSet_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToFaceSet", inverse_attribute::set_type, 1, -1, IFC4_IfcPolygonalFaceSet_type, IFC4_IfcPolygonalFaceSet_type->attributes()[1])); IFC4_IfcIndexedPolygonalFace_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("LibraryInfoForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasLibraryReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcLibraryReference_type, IFC4_IfcLibraryReference_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("LibraryInfoForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasLibraryReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcLibraryReference_type, IFC4_IfcLibraryReference_type->attributes()[2])); IFC4_IfcLibraryInformation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("LibraryRefForObjects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("LibraryRefForObjects", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesLibrary_type, IFC4_IfcRelAssociatesLibrary_type->attributes()[0])); IFC4_IfcLibraryReference_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("HasRepresentation", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialDefinitionRepresentation_type, IFC4_IfcMaterialDefinitionRepresentation_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsRelatedWith", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("RelatesTo", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("HasRepresentation", inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialDefinitionRepresentation_type, IFC4_IfcMaterialDefinitionRepresentation_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsRelatedWith", inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("RelatesTo", inverse_attribute::set_type, 0, 1, IFC4_IfcMaterialRelationship_type, IFC4_IfcMaterialRelationship_type->attributes()[0])); IFC4_IfcMaterial_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialConstituentSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialConstituentSet_type, IFC4_IfcMaterialConstituentSet_type->attributes()[2])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialConstituentSet", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialConstituentSet_type, IFC4_IfcMaterialConstituentSet_type->attributes()[2])); IFC4_IfcMaterialConstituent_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("AssociatedTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasProperties", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialProperties_type, IFC4_IfcMaterialProperties_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("AssociatedTo", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasProperties", inverse_attribute::set_type, 0, -1, IFC4_IfcMaterialProperties_type, IFC4_IfcMaterialProperties_type->attributes()[0])); IFC4_IfcMaterialDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialLayerSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialLayerSet_type, IFC4_IfcMaterialLayerSet_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialLayerSet", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialLayerSet_type, IFC4_IfcMaterialLayerSet_type->attributes()[0])); IFC4_IfcMaterialLayer_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ToMaterialProfileSet", entity::inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialProfileSet_type, IFC4_IfcMaterialProfileSet_type->attributes()[2])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ToMaterialProfileSet", inverse_attribute::unspecified_type, -1, -1, IFC4_IfcMaterialProfileSet_type, IFC4_IfcMaterialProfileSet_type->attributes()[2])); IFC4_IfcMaterialProfile_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssociatedTo", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssociatedTo", inverse_attribute::set_type, 1, -1, IFC4_IfcRelAssociatesMaterial_type, IFC4_IfcRelAssociatesMaterial_type->attributes()[0])); IFC4_IfcMaterialUsageDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(4); - attributes.push_back(new entity::inverse_attribute("IsDeclaredBy", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Declares", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsTypedBy", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); + std::vector attributes; attributes.reserve(4); + attributes.push_back(new inverse_attribute("IsDeclaredBy", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Declares", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByObject_type, IFC4_IfcRelDefinesByObject_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsTypedBy", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[0])); IFC4_IfcObject_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(7); - attributes.push_back(new entity::inverse_attribute("HasAssignments", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssigns_type, IFC4_IfcRelAssigns_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Nests", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsNestedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasContext", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsDecomposedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Decomposes", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(7); + attributes.push_back(new inverse_attribute("HasAssignments", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssigns_type, IFC4_IfcRelAssigns_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Nests", inverse_attribute::set_type, 0, 1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsNestedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelNests_type, IFC4_IfcRelNests_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasContext", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsDecomposedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Decomposes", inverse_attribute::set_type, 0, 1, IFC4_IfcRelAggregates_type, IFC4_IfcRelAggregates_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); IFC4_IfcObjectDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PlacesObject", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ReferencedByPlacements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcLocalPlacement_type, IFC4_IfcLocalPlacement_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PlacesObject", inverse_attribute::set_type, 0, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ReferencedByPlacements", inverse_attribute::set_type, 0, -1, IFC4_IfcLocalPlacement_type, IFC4_IfcLocalPlacement_type->attributes()[0])); IFC4_IfcObjectPlacement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasFillings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasFillings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelFillsElement_type, IFC4_IfcRelFillsElement_type->attributes()[0])); IFC4_IfcOpeningElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("IsRelatedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("Relates", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("Engages", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("IsRelatedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("Relates", inverse_attribute::set_type, 0, -1, IFC4_IfcOrganizationRelationship_type, IFC4_IfcOrganizationRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("Engages", inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[1])); IFC4_IfcOrganization_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("EngagedIn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("EngagedIn", inverse_attribute::set_type, 0, -1, IFC4_IfcPersonAndOrganization_type, IFC4_IfcPersonAndOrganization_type->attributes()[0])); IFC4_IfcPerson_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcPhysicalComplexQuantity_type, IFC4_IfcPhysicalComplexQuantity_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, 1, IFC4_IfcPhysicalComplexQuantity_type, IFC4_IfcPhysicalComplexQuantity_type->attributes()[0])); IFC4_IfcPhysicalQuantity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ContainedIn", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("ConnectedFrom", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ConnectedTo", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ContainedIn", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPortToElement_type, IFC4_IfcRelConnectsPortToElement_type->attributes()[0])); + attributes.push_back(new inverse_attribute("ConnectedFrom", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ConnectedTo", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsPorts_type, IFC4_IfcRelConnectsPorts_type->attributes()[0])); IFC4_IfcPort_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("IsPredecessorTo", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("IsSuccessorFrom", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("OperatesOn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("IsPredecessorTo", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[0])); + attributes.push_back(new inverse_attribute("IsSuccessorFrom", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSequence_type, IFC4_IfcRelSequence_type->attributes()[1])); + attributes.push_back(new inverse_attribute("OperatesOn", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); IFC4_IfcProcess_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferencedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferencedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); IFC4_IfcProduct_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("ShapeOfProduct", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasShapeAspects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("ShapeOfProduct", inverse_attribute::set_type, 1, -1, IFC4_IfcProduct_type, IFC4_IfcProduct_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasShapeAspects", inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); IFC4_IfcProductDefinitionShape_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasProperties", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcProfileProperties_type, IFC4_IfcProfileProperties_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasProperties", inverse_attribute::set_type, 0, -1, IFC4_IfcProfileProperties_type, IFC4_IfcProfileProperties_type->attributes()[0])); IFC4_IfcProfileDef_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(6); - attributes.push_back(new entity::inverse_attribute("PartOfPset", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySet_type, IFC4_IfcPropertySet_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("PropertyForDependance", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("PropertyDependsOn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("PartOfComplex", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcComplexProperty_type, IFC4_IfcComplexProperty_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasConstraints", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasApprovals", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[0])); + std::vector attributes; attributes.reserve(6); + attributes.push_back(new inverse_attribute("PartOfPset", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySet_type, IFC4_IfcPropertySet_type->attributes()[0])); + attributes.push_back(new inverse_attribute("PropertyForDependance", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[0])); + attributes.push_back(new inverse_attribute("PropertyDependsOn", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertyDependencyRelationship_type, IFC4_IfcPropertyDependencyRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("PartOfComplex", inverse_attribute::set_type, 0, -1, IFC4_IfcComplexProperty_type, IFC4_IfcComplexProperty_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasConstraints", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceConstraintRelationship_type, IFC4_IfcResourceConstraintRelationship_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasApprovals", inverse_attribute::set_type, 0, -1, IFC4_IfcResourceApprovalRelationship_type, IFC4_IfcResourceApprovalRelationship_type->attributes()[0])); IFC4_IfcProperty_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReferences", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReferences", inverse_attribute::set_type, 0, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcPropertyAbstraction_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasContext", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("HasAssociations", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasContext", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDeclares_type, IFC4_IfcRelDeclares_type->attributes()[1])); + attributes.push_back(new inverse_attribute("HasAssociations", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssociates_type, IFC4_IfcRelAssociates_type->attributes()[0])); IFC4_IfcPropertyDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("DefinesType", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcTypeObject_type, IFC4_IfcTypeObject_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("IsDefinedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("DefinesOccurrence", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("DefinesType", inverse_attribute::set_type, 0, -1, IFC4_IfcTypeObject_type, IFC4_IfcTypeObject_type->attributes()[1])); + attributes.push_back(new inverse_attribute("IsDefinedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[0])); + attributes.push_back(new inverse_attribute("DefinesOccurrence", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByProperties_type, IFC4_IfcRelDefinesByProperties_type->attributes()[1])); IFC4_IfcPropertySetDefinition_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Defines", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Defines", inverse_attribute::set_type, 0, -1, IFC4_IfcRelDefinesByTemplate_type, IFC4_IfcRelDefinesByTemplate_type->attributes()[1])); IFC4_IfcPropertySetTemplate_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("PartOfComplexTemplate", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcComplexPropertyTemplate_type, IFC4_IfcComplexPropertyTemplate_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("PartOfPsetTemplate", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySetTemplate_type, IFC4_IfcPropertySetTemplate_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("PartOfComplexTemplate", inverse_attribute::set_type, 0, -1, IFC4_IfcComplexPropertyTemplate_type, IFC4_IfcComplexPropertyTemplate_type->attributes()[2])); + attributes.push_back(new inverse_attribute("PartOfPsetTemplate", inverse_attribute::set_type, 0, -1, IFC4_IfcPropertySetTemplate_type, IFC4_IfcPropertySetTemplate_type->attributes()[2])); IFC4_IfcPropertyTemplate_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("InnerBoundaries", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary1stLevel_type, IFC4_IfcRelSpaceBoundary1stLevel_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("InnerBoundaries", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary1stLevel_type, IFC4_IfcRelSpaceBoundary1stLevel_type->attributes()[0])); IFC4_IfcRelSpaceBoundary1stLevel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Corresponds", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelSpaceBoundary2ndLevel_type, IFC4_IfcRelSpaceBoundary2ndLevel_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Corresponds", inverse_attribute::set_type, 0, 1, IFC4_IfcRelSpaceBoundary2ndLevel_type, IFC4_IfcRelSpaceBoundary2ndLevel_type->attributes()[0])); IFC4_IfcRelSpaceBoundary2ndLevel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("RepresentationMap", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRepresentationMap_type, IFC4_IfcRepresentationMap_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LayerAssignments", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("OfProductRepresentation", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcProductRepresentation_type, IFC4_IfcProductRepresentation_type->attributes()[2])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("RepresentationMap", inverse_attribute::set_type, 0, 1, IFC4_IfcRepresentationMap_type, IFC4_IfcRepresentationMap_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LayerAssignments", inverse_attribute::set_type, 0, -1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("OfProductRepresentation", inverse_attribute::set_type, 0, -1, IFC4_IfcProductRepresentation_type, IFC4_IfcProductRepresentation_type->attributes()[2])); IFC4_IfcRepresentation_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("RepresentationsInContext", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRepresentation_type, IFC4_IfcRepresentation_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("RepresentationsInContext", inverse_attribute::set_type, 0, -1, IFC4_IfcRepresentation_type, IFC4_IfcRepresentation_type->attributes()[0])); IFC4_IfcRepresentationContext_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("LayerAssignment", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); - attributes.push_back(new entity::inverse_attribute("StyledByItem", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcStyledItem_type, IFC4_IfcStyledItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("LayerAssignment", inverse_attribute::set_type, 0, 1, IFC4_IfcPresentationLayerAssignment_type, IFC4_IfcPresentationLayerAssignment_type->attributes()[2])); + attributes.push_back(new inverse_attribute("StyledByItem", inverse_attribute::set_type, 0, 1, IFC4_IfcStyledItem_type, IFC4_IfcStyledItem_type->attributes()[0])); IFC4_IfcRepresentationItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasShapeAspects", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); - attributes.push_back(new entity::inverse_attribute("MapUsage", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcMappedItem_type, IFC4_IfcMappedItem_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasShapeAspects", inverse_attribute::set_type, 0, -1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[4])); + attributes.push_back(new inverse_attribute("MapUsage", inverse_attribute::set_type, 0, -1, IFC4_IfcMappedItem_type, IFC4_IfcMappedItem_type->attributes()[0])); IFC4_IfcRepresentationMap_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResourceOf", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResourceOf", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); IFC4_IfcResource_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OfShapeAspect", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OfShapeAspect", inverse_attribute::set_type, 0, 1, IFC4_IfcShapeAspect_type, IFC4_IfcShapeAspect_type->attributes()[0])); IFC4_IfcShapeModel_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasCoverings", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("BoundedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasCoverings", inverse_attribute::set_type, 0, -1, IFC4_IfcRelCoversSpaces_type, IFC4_IfcRelCoversSpaces_type->attributes()[0])); + attributes.push_back(new inverse_attribute("BoundedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelSpaceBoundary_type, IFC4_IfcRelSpaceBoundary_type->attributes()[0])); IFC4_IfcSpace_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(3); - attributes.push_back(new entity::inverse_attribute("ContainsElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ServicedBySystems", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("ReferencesElements", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[1])); + std::vector attributes; attributes.reserve(3); + attributes.push_back(new inverse_attribute("ContainsElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelContainedInSpatialStructure_type, IFC4_IfcRelContainedInSpatialStructure_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ServicedBySystems", inverse_attribute::set_type, 0, -1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[1])); + attributes.push_back(new inverse_attribute("ReferencesElements", inverse_attribute::set_type, 0, -1, IFC4_IfcRelReferencedInSpatialStructure_type, IFC4_IfcRelReferencedInSpatialStructure_type->attributes()[1])); IFC4_IfcSpatialElement_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedToStructuralItem", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedToStructuralItem", inverse_attribute::set_type, 0, 1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[1])); IFC4_IfcStructuralActivity_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ConnectsStructuralMembers", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ConnectsStructuralMembers", inverse_attribute::set_type, 1, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[1])); IFC4_IfcStructuralConnection_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("AssignedStructuralActivity", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("AssignedStructuralActivity", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralActivity_type, IFC4_IfcRelConnectsStructuralActivity_type->attributes()[0])); IFC4_IfcStructuralItem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("SourceOfResultGroup", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralResultGroup_type, IFC4_IfcStructuralResultGroup_type->attributes()[1])); - attributes.push_back(new entity::inverse_attribute("LoadGroupFor", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[2])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("SourceOfResultGroup", inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralResultGroup_type, IFC4_IfcStructuralResultGroup_type->attributes()[1])); + attributes.push_back(new inverse_attribute("LoadGroupFor", inverse_attribute::set_type, 0, -1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[2])); IFC4_IfcStructuralLoadGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ConnectedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ConnectedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelConnectsStructuralMember_type, IFC4_IfcRelConnectsStructuralMember_type->attributes()[0])); IFC4_IfcStructuralMember_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResultGroupFor", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[3])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResultGroupFor", inverse_attribute::set_type, 0, 1, IFC4_IfcStructuralAnalysisModel_type, IFC4_IfcStructuralAnalysisModel_type->attributes()[3])); IFC4_IfcStructuralResultGroup_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("IsMappedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcTextureCoordinate_type, IFC4_IfcTextureCoordinate_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("UsedInStyles", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcSurfaceStyleWithTextures_type, IFC4_IfcSurfaceStyleWithTextures_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("IsMappedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcTextureCoordinate_type, IFC4_IfcTextureCoordinate_type->attributes()[0])); + attributes.push_back(new inverse_attribute("UsedInStyles", inverse_attribute::set_type, 0, -1, IFC4_IfcSurfaceStyleWithTextures_type, IFC4_IfcSurfaceStyleWithTextures_type->attributes()[0])); IFC4_IfcSurfaceTexture_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ServicesBuildings", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ServicesBuildings", inverse_attribute::set_type, 0, 1, IFC4_IfcRelServicesBuildings_type, IFC4_IfcRelServicesBuildings_type->attributes()[0])); IFC4_IfcSystem_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(2); - attributes.push_back(new entity::inverse_attribute("HasColours", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcIndexedColourMap_type, IFC4_IfcIndexedColourMap_type->attributes()[0])); - attributes.push_back(new entity::inverse_attribute("HasTextures", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcIndexedTextureMap_type, IFC4_IfcIndexedTextureMap_type->attributes()[0])); + std::vector attributes; attributes.reserve(2); + attributes.push_back(new inverse_attribute("HasColours", inverse_attribute::set_type, 0, 1, IFC4_IfcIndexedColourMap_type, IFC4_IfcIndexedColourMap_type->attributes()[0])); + attributes.push_back(new inverse_attribute("HasTextures", inverse_attribute::set_type, 0, -1, IFC4_IfcIndexedTextureMap_type, IFC4_IfcIndexedTextureMap_type->attributes()[0])); IFC4_IfcTessellatedFaceSet_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("HasExternalReference", entity::inverse_attribute::set_type, 1, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("HasExternalReference", inverse_attribute::set_type, 1, -1, IFC4_IfcExternalReferenceRelationship_type, IFC4_IfcExternalReferenceRelationship_type->attributes()[1])); IFC4_IfcTimeSeries_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("Types", entity::inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[1])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("Types", inverse_attribute::set_type, 0, 1, IFC4_IfcRelDefinesByType_type, IFC4_IfcRelDefinesByType_type->attributes()[1])); IFC4_IfcTypeObject_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("OperatesOn", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("OperatesOn", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProcess_type, IFC4_IfcRelAssignsToProcess_type->attributes()[0])); IFC4_IfcTypeProcess_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ReferencedBy", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ReferencedBy", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToProduct_type, IFC4_IfcRelAssignsToProduct_type->attributes()[0])); IFC4_IfcTypeProduct_type->set_inverse_attributes(attributes); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new entity::inverse_attribute("ResourceOf", entity::inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); + std::vector attributes; attributes.reserve(1); + attributes.push_back(new inverse_attribute("ResourceOf", inverse_attribute::set_type, 0, -1, IFC4_IfcRelAssignsToResource_type, IFC4_IfcRelAssignsToResource_type->attributes()[0])); IFC4_IfcTypeResource_type->set_inverse_attributes(attributes); } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcActionRequest_type);defs.push_back(IFC4_IfcCostItem_type);defs.push_back(IFC4_IfcCostSchedule_type);defs.push_back(IFC4_IfcPerformanceHistory_type);defs.push_back(IFC4_IfcPermit_type);defs.push_back(IFC4_IfcProjectOrder_type);defs.push_back(IFC4_IfcWorkCalendar_type);defs.push_back(IFC4_IfcWorkControl_type); + IFC4_IfcControl_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcActor_type);defs.push_back(IFC4_IfcControl_type);defs.push_back(IFC4_IfcGroup_type);defs.push_back(IFC4_IfcProcess_type);defs.push_back(IFC4_IfcProduct_type);defs.push_back(IFC4_IfcResource_type); + IFC4_IfcObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcActuator_type);defs.push_back(IFC4_IfcAlarm_type);defs.push_back(IFC4_IfcController_type);defs.push_back(IFC4_IfcFlowInstrument_type);defs.push_back(IFC4_IfcProtectiveDeviceTrippingUnit_type);defs.push_back(IFC4_IfcSensor_type);defs.push_back(IFC4_IfcUnitaryControlElement_type); + IFC4_IfcDistributionControlElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcActuatorType_type);defs.push_back(IFC4_IfcAlarmType_type);defs.push_back(IFC4_IfcControllerType_type);defs.push_back(IFC4_IfcFlowInstrumentType_type);defs.push_back(IFC4_IfcProtectiveDeviceTrippingUnitType_type);defs.push_back(IFC4_IfcSensorType_type);defs.push_back(IFC4_IfcUnitaryControlElementType_type); + IFC4_IfcDistributionControlElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcAdvancedBrep_type);defs.push_back(IFC4_IfcFacetedBrep_type); + IFC4_IfcManifoldSolidBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcAdvancedBrepWithVoids_type); + IFC4_IfcAdvancedBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcAdvancedFace_type); + IFC4_IfcFaceSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(13); + defs.push_back(IFC4_IfcAirTerminal_type);defs.push_back(IFC4_IfcAudioVisualAppliance_type);defs.push_back(IFC4_IfcCommunicationsAppliance_type);defs.push_back(IFC4_IfcElectricAppliance_type);defs.push_back(IFC4_IfcFireSuppressionTerminal_type);defs.push_back(IFC4_IfcLamp_type);defs.push_back(IFC4_IfcLightFixture_type);defs.push_back(IFC4_IfcMedicalDevice_type);defs.push_back(IFC4_IfcOutlet_type);defs.push_back(IFC4_IfcSanitaryTerminal_type);defs.push_back(IFC4_IfcSpaceHeater_type);defs.push_back(IFC4_IfcStackTerminal_type);defs.push_back(IFC4_IfcWasteTerminal_type); + IFC4_IfcFlowTerminal_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcAirTerminalBox_type);defs.push_back(IFC4_IfcDamper_type);defs.push_back(IFC4_IfcElectricDistributionBoard_type);defs.push_back(IFC4_IfcElectricTimeControl_type);defs.push_back(IFC4_IfcFlowMeter_type);defs.push_back(IFC4_IfcProtectiveDevice_type);defs.push_back(IFC4_IfcSwitchingDevice_type);defs.push_back(IFC4_IfcValve_type); + IFC4_IfcFlowController_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcAirTerminalBoxType_type);defs.push_back(IFC4_IfcDamperType_type);defs.push_back(IFC4_IfcElectricDistributionBoardType_type);defs.push_back(IFC4_IfcElectricTimeControlType_type);defs.push_back(IFC4_IfcFlowMeterType_type);defs.push_back(IFC4_IfcProtectiveDeviceType_type);defs.push_back(IFC4_IfcSwitchingDeviceType_type);defs.push_back(IFC4_IfcValveType_type); + IFC4_IfcFlowControllerType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(13); + defs.push_back(IFC4_IfcAirTerminalType_type);defs.push_back(IFC4_IfcAudioVisualApplianceType_type);defs.push_back(IFC4_IfcCommunicationsApplianceType_type);defs.push_back(IFC4_IfcElectricApplianceType_type);defs.push_back(IFC4_IfcFireSuppressionTerminalType_type);defs.push_back(IFC4_IfcLampType_type);defs.push_back(IFC4_IfcLightFixtureType_type);defs.push_back(IFC4_IfcMedicalDeviceType_type);defs.push_back(IFC4_IfcOutletType_type);defs.push_back(IFC4_IfcSanitaryTerminalType_type);defs.push_back(IFC4_IfcSpaceHeaterType_type);defs.push_back(IFC4_IfcStackTerminalType_type);defs.push_back(IFC4_IfcWasteTerminalType_type); + IFC4_IfcFlowTerminalType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(20); + defs.push_back(IFC4_IfcAirToAirHeatRecovery_type);defs.push_back(IFC4_IfcBoiler_type);defs.push_back(IFC4_IfcBurner_type);defs.push_back(IFC4_IfcChiller_type);defs.push_back(IFC4_IfcCoil_type);defs.push_back(IFC4_IfcCondenser_type);defs.push_back(IFC4_IfcCooledBeam_type);defs.push_back(IFC4_IfcCoolingTower_type);defs.push_back(IFC4_IfcElectricGenerator_type);defs.push_back(IFC4_IfcElectricMotor_type);defs.push_back(IFC4_IfcEngine_type);defs.push_back(IFC4_IfcEvaporativeCooler_type);defs.push_back(IFC4_IfcEvaporator_type);defs.push_back(IFC4_IfcHeatExchanger_type);defs.push_back(IFC4_IfcHumidifier_type);defs.push_back(IFC4_IfcMotorConnection_type);defs.push_back(IFC4_IfcSolarDevice_type);defs.push_back(IFC4_IfcTransformer_type);defs.push_back(IFC4_IfcTubeBundle_type);defs.push_back(IFC4_IfcUnitaryEquipment_type); + IFC4_IfcEnergyConversionDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(20); + defs.push_back(IFC4_IfcAirToAirHeatRecoveryType_type);defs.push_back(IFC4_IfcBoilerType_type);defs.push_back(IFC4_IfcBurnerType_type);defs.push_back(IFC4_IfcChillerType_type);defs.push_back(IFC4_IfcCoilType_type);defs.push_back(IFC4_IfcCondenserType_type);defs.push_back(IFC4_IfcCooledBeamType_type);defs.push_back(IFC4_IfcCoolingTowerType_type);defs.push_back(IFC4_IfcElectricGeneratorType_type);defs.push_back(IFC4_IfcElectricMotorType_type);defs.push_back(IFC4_IfcEngineType_type);defs.push_back(IFC4_IfcEvaporativeCoolerType_type);defs.push_back(IFC4_IfcEvaporatorType_type);defs.push_back(IFC4_IfcHeatExchangerType_type);defs.push_back(IFC4_IfcHumidifierType_type);defs.push_back(IFC4_IfcMotorConnectionType_type);defs.push_back(IFC4_IfcSolarDeviceType_type);defs.push_back(IFC4_IfcTransformerType_type);defs.push_back(IFC4_IfcTubeBundleType_type);defs.push_back(IFC4_IfcUnitaryEquipmentType_type); + IFC4_IfcEnergyConversionDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcAnnotation_type);defs.push_back(IFC4_IfcElement_type);defs.push_back(IFC4_IfcGrid_type);defs.push_back(IFC4_IfcPort_type);defs.push_back(IFC4_IfcProxy_type);defs.push_back(IFC4_IfcSpatialElement_type);defs.push_back(IFC4_IfcStructuralActivity_type);defs.push_back(IFC4_IfcStructuralItem_type); + IFC4_IfcProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(25); + defs.push_back(IFC4_IfcAnnotationFillArea_type);defs.push_back(IFC4_IfcBooleanResult_type);defs.push_back(IFC4_IfcBoundingBox_type);defs.push_back(IFC4_IfcCartesianPointList_type);defs.push_back(IFC4_IfcCartesianTransformationOperator_type);defs.push_back(IFC4_IfcCompositeCurveSegment_type);defs.push_back(IFC4_IfcCsgPrimitive3D_type);defs.push_back(IFC4_IfcCurve_type);defs.push_back(IFC4_IfcDirection_type);defs.push_back(IFC4_IfcFaceBasedSurfaceModel_type);defs.push_back(IFC4_IfcFillAreaStyleHatching_type);defs.push_back(IFC4_IfcFillAreaStyleTiles_type);defs.push_back(IFC4_IfcGeometricSet_type);defs.push_back(IFC4_IfcHalfSpaceSolid_type);defs.push_back(IFC4_IfcLightSource_type);defs.push_back(IFC4_IfcPlacement_type);defs.push_back(IFC4_IfcPlanarExtent_type);defs.push_back(IFC4_IfcPoint_type);defs.push_back(IFC4_IfcSectionedSpine_type);defs.push_back(IFC4_IfcShellBasedSurfaceModel_type);defs.push_back(IFC4_IfcSolidModel_type);defs.push_back(IFC4_IfcSurface_type);defs.push_back(IFC4_IfcTessellatedItem_type);defs.push_back(IFC4_IfcTextLiteral_type);defs.push_back(IFC4_IfcVector_type); + IFC4_IfcGeometricRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4_IfcApprovalRelationship_type);defs.push_back(IFC4_IfcCurrencyRelationship_type);defs.push_back(IFC4_IfcDocumentInformationRelationship_type);defs.push_back(IFC4_IfcExternalReferenceRelationship_type);defs.push_back(IFC4_IfcMaterialRelationship_type);defs.push_back(IFC4_IfcOrganizationRelationship_type);defs.push_back(IFC4_IfcPropertyDependencyRelationship_type);defs.push_back(IFC4_IfcResourceApprovalRelationship_type);defs.push_back(IFC4_IfcResourceConstraintRelationship_type); + IFC4_IfcResourceLevelRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcArbitraryClosedProfileDef_type);defs.push_back(IFC4_IfcArbitraryOpenProfileDef_type);defs.push_back(IFC4_IfcCompositeProfileDef_type);defs.push_back(IFC4_IfcDerivedProfileDef_type);defs.push_back(IFC4_IfcParameterizedProfileDef_type); + IFC4_IfcProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcArbitraryProfileDefWithVoids_type); + IFC4_IfcArbitraryClosedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcAsset_type);defs.push_back(IFC4_IfcInventory_type);defs.push_back(IFC4_IfcStructuralLoadGroup_type);defs.push_back(IFC4_IfcStructuralResultGroup_type);defs.push_back(IFC4_IfcSystem_type); + IFC4_IfcGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(11); + defs.push_back(IFC4_IfcAsymmetricIShapeProfileDef_type);defs.push_back(IFC4_IfcCShapeProfileDef_type);defs.push_back(IFC4_IfcCircleProfileDef_type);defs.push_back(IFC4_IfcEllipseProfileDef_type);defs.push_back(IFC4_IfcIShapeProfileDef_type);defs.push_back(IFC4_IfcLShapeProfileDef_type);defs.push_back(IFC4_IfcRectangleProfileDef_type);defs.push_back(IFC4_IfcTShapeProfileDef_type);defs.push_back(IFC4_IfcTrapeziumProfileDef_type);defs.push_back(IFC4_IfcUShapeProfileDef_type);defs.push_back(IFC4_IfcZShapeProfileDef_type); + IFC4_IfcParameterizedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcAxis1Placement_type);defs.push_back(IFC4_IfcAxis2Placement2D_type);defs.push_back(IFC4_IfcAxis2Placement3D_type); + IFC4_IfcPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcBSplineCurve_type);defs.push_back(IFC4_IfcCompositeCurve_type);defs.push_back(IFC4_IfcIndexedPolyCurve_type);defs.push_back(IFC4_IfcPolyline_type);defs.push_back(IFC4_IfcTrimmedCurve_type); + IFC4_IfcBoundedCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBSplineCurveWithKnots_type); + IFC4_IfcBSplineCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcBSplineSurface_type);defs.push_back(IFC4_IfcCurveBoundedPlane_type);defs.push_back(IFC4_IfcCurveBoundedSurface_type);defs.push_back(IFC4_IfcRectangularTrimmedSurface_type); + IFC4_IfcBoundedSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBSplineSurfaceWithKnots_type); + IFC4_IfcBSplineSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(21); + defs.push_back(IFC4_IfcBeam_type);defs.push_back(IFC4_IfcBuildingElementProxy_type);defs.push_back(IFC4_IfcChimney_type);defs.push_back(IFC4_IfcColumn_type);defs.push_back(IFC4_IfcCovering_type);defs.push_back(IFC4_IfcCurtainWall_type);defs.push_back(IFC4_IfcDoor_type);defs.push_back(IFC4_IfcFooting_type);defs.push_back(IFC4_IfcMember_type);defs.push_back(IFC4_IfcPile_type);defs.push_back(IFC4_IfcPlate_type);defs.push_back(IFC4_IfcRailing_type);defs.push_back(IFC4_IfcRamp_type);defs.push_back(IFC4_IfcRampFlight_type);defs.push_back(IFC4_IfcRoof_type);defs.push_back(IFC4_IfcShadingDevice_type);defs.push_back(IFC4_IfcSlab_type);defs.push_back(IFC4_IfcStair_type);defs.push_back(IFC4_IfcStairFlight_type);defs.push_back(IFC4_IfcWall_type);defs.push_back(IFC4_IfcWindow_type); + IFC4_IfcBuildingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBeamStandardCase_type); + IFC4_IfcBeam_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(21); + defs.push_back(IFC4_IfcBeamType_type);defs.push_back(IFC4_IfcBuildingElementProxyType_type);defs.push_back(IFC4_IfcChimneyType_type);defs.push_back(IFC4_IfcColumnType_type);defs.push_back(IFC4_IfcCoveringType_type);defs.push_back(IFC4_IfcCurtainWallType_type);defs.push_back(IFC4_IfcDoorType_type);defs.push_back(IFC4_IfcFootingType_type);defs.push_back(IFC4_IfcMemberType_type);defs.push_back(IFC4_IfcPileType_type);defs.push_back(IFC4_IfcPlateType_type);defs.push_back(IFC4_IfcRailingType_type);defs.push_back(IFC4_IfcRampFlightType_type);defs.push_back(IFC4_IfcRampType_type);defs.push_back(IFC4_IfcRoofType_type);defs.push_back(IFC4_IfcShadingDeviceType_type);defs.push_back(IFC4_IfcSlabType_type);defs.push_back(IFC4_IfcStairFlightType_type);defs.push_back(IFC4_IfcStairType_type);defs.push_back(IFC4_IfcWallType_type);defs.push_back(IFC4_IfcWindowType_type); + IFC4_IfcBuildingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcBlobTexture_type);defs.push_back(IFC4_IfcImageTexture_type);defs.push_back(IFC4_IfcPixelTexture_type); + IFC4_IfcSurfaceTexture_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcBlock_type);defs.push_back(IFC4_IfcRectangularPyramid_type);defs.push_back(IFC4_IfcRightCircularCone_type);defs.push_back(IFC4_IfcRightCircularCylinder_type);defs.push_back(IFC4_IfcSphere_type); + IFC4_IfcCsgPrimitive3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBooleanClippingResult_type); + IFC4_IfcBooleanResult_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBoundaryCurve_type); + IFC4_IfcCompositeCurveOnSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcBoundaryEdgeCondition_type);defs.push_back(IFC4_IfcBoundaryFaceCondition_type);defs.push_back(IFC4_IfcBoundaryNodeCondition_type); + IFC4_IfcBoundaryCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcBoundaryNodeConditionWarping_type); + IFC4_IfcBoundaryNodeCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcBoundedCurve_type);defs.push_back(IFC4_IfcConic_type);defs.push_back(IFC4_IfcLine_type);defs.push_back(IFC4_IfcOffsetCurve2D_type);defs.push_back(IFC4_IfcOffsetCurve3D_type);defs.push_back(IFC4_IfcPcurve_type);defs.push_back(IFC4_IfcSurfaceCurve_type); + IFC4_IfcCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcBoundedSurface_type);defs.push_back(IFC4_IfcElementarySurface_type);defs.push_back(IFC4_IfcSweptSurface_type); + IFC4_IfcSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcBoxedHalfSpace_type);defs.push_back(IFC4_IfcPolygonalBoundedHalfSpace_type); + IFC4_IfcHalfSpaceSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcBuilding_type);defs.push_back(IFC4_IfcBuildingStorey_type);defs.push_back(IFC4_IfcSite_type);defs.push_back(IFC4_IfcSpace_type); + IFC4_IfcSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(10); + defs.push_back(IFC4_IfcBuildingElement_type);defs.push_back(IFC4_IfcCivilElement_type);defs.push_back(IFC4_IfcDistributionElement_type);defs.push_back(IFC4_IfcElementAssembly_type);defs.push_back(IFC4_IfcElementComponent_type);defs.push_back(IFC4_IfcFeatureElement_type);defs.push_back(IFC4_IfcFurnishingElement_type);defs.push_back(IFC4_IfcGeographicElement_type);defs.push_back(IFC4_IfcTransportElement_type);defs.push_back(IFC4_IfcVirtualElement_type); + IFC4_IfcElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcBuildingElementPart_type);defs.push_back(IFC4_IfcDiscreteAccessory_type);defs.push_back(IFC4_IfcFastener_type);defs.push_back(IFC4_IfcMechanicalFastener_type);defs.push_back(IFC4_IfcReinforcingElement_type);defs.push_back(IFC4_IfcVibrationIsolator_type); + IFC4_IfcElementComponent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcBuildingElementPartType_type);defs.push_back(IFC4_IfcDiscreteAccessoryType_type);defs.push_back(IFC4_IfcFastenerType_type);defs.push_back(IFC4_IfcMechanicalFastenerType_type);defs.push_back(IFC4_IfcReinforcingElementType_type);defs.push_back(IFC4_IfcVibrationIsolatorType_type); + IFC4_IfcElementComponentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4_IfcBuildingElementType_type);defs.push_back(IFC4_IfcCivilElementType_type);defs.push_back(IFC4_IfcDistributionElementType_type);defs.push_back(IFC4_IfcElementAssemblyType_type);defs.push_back(IFC4_IfcElementComponentType_type);defs.push_back(IFC4_IfcFurnishingElementType_type);defs.push_back(IFC4_IfcGeographicElementType_type);defs.push_back(IFC4_IfcTransportElementType_type); + IFC4_IfcElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcBuildingSystem_type);defs.push_back(IFC4_IfcDistributionSystem_type);defs.push_back(IFC4_IfcStructuralAnalysisModel_type);defs.push_back(IFC4_IfcZone_type); + IFC4_IfcSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcCableCarrierFitting_type);defs.push_back(IFC4_IfcCableFitting_type);defs.push_back(IFC4_IfcDuctFitting_type);defs.push_back(IFC4_IfcJunctionBox_type);defs.push_back(IFC4_IfcPipeFitting_type); + IFC4_IfcFlowFitting_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcCableCarrierFittingType_type);defs.push_back(IFC4_IfcCableFittingType_type);defs.push_back(IFC4_IfcDuctFittingType_type);defs.push_back(IFC4_IfcJunctionBoxType_type);defs.push_back(IFC4_IfcPipeFittingType_type); + IFC4_IfcFlowFittingType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCableCarrierSegment_type);defs.push_back(IFC4_IfcCableSegment_type);defs.push_back(IFC4_IfcDuctSegment_type);defs.push_back(IFC4_IfcPipeSegment_type); + IFC4_IfcFlowSegment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCableCarrierSegmentType_type);defs.push_back(IFC4_IfcCableSegmentType_type);defs.push_back(IFC4_IfcDuctSegmentType_type);defs.push_back(IFC4_IfcPipeSegmentType_type); + IFC4_IfcFlowSegmentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcCartesianPoint_type);defs.push_back(IFC4_IfcPointOnCurve_type);defs.push_back(IFC4_IfcPointOnSurface_type); + IFC4_IfcPoint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcCartesianPointList2D_type);defs.push_back(IFC4_IfcCartesianPointList3D_type); + IFC4_IfcCartesianPointList_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcCartesianTransformationOperator2D_type);defs.push_back(IFC4_IfcCartesianTransformationOperator3D_type); + IFC4_IfcCartesianTransformationOperator_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCartesianTransformationOperator2DnonUniform_type); + IFC4_IfcCartesianTransformationOperator2D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCartesianTransformationOperator3DnonUniform_type); + IFC4_IfcCartesianTransformationOperator3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCenterLineProfileDef_type); + IFC4_IfcArbitraryOpenProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcCircle_type);defs.push_back(IFC4_IfcEllipse_type); + IFC4_IfcConic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCircleHollowProfileDef_type); + IFC4_IfcCircleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcClassification_type);defs.push_back(IFC4_IfcDocumentInformation_type);defs.push_back(IFC4_IfcLibraryInformation_type); + IFC4_IfcExternalInformation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcClassificationReference_type);defs.push_back(IFC4_IfcDocumentReference_type);defs.push_back(IFC4_IfcExternallyDefinedHatchStyle_type);defs.push_back(IFC4_IfcExternallyDefinedSurfaceStyle_type);defs.push_back(IFC4_IfcExternallyDefinedTextFont_type);defs.push_back(IFC4_IfcLibraryReference_type); + IFC4_IfcExternalReference_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcClosedShell_type);defs.push_back(IFC4_IfcOpenShell_type); + IFC4_IfcConnectedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcColourRgb_type); + IFC4_IfcColourSpecification_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(17); + defs.push_back(IFC4_IfcColourRgbList_type);defs.push_back(IFC4_IfcColourSpecification_type);defs.push_back(IFC4_IfcCurveStyleFont_type);defs.push_back(IFC4_IfcCurveStyleFontAndScaling_type);defs.push_back(IFC4_IfcCurveStyleFontPattern_type);defs.push_back(IFC4_IfcIndexedColourMap_type);defs.push_back(IFC4_IfcPreDefinedItem_type);defs.push_back(IFC4_IfcSurfaceStyleLighting_type);defs.push_back(IFC4_IfcSurfaceStyleRefraction_type);defs.push_back(IFC4_IfcSurfaceStyleShading_type);defs.push_back(IFC4_IfcSurfaceStyleWithTextures_type);defs.push_back(IFC4_IfcSurfaceTexture_type);defs.push_back(IFC4_IfcTextStyleForDefinedFont_type);defs.push_back(IFC4_IfcTextStyleTextModel_type);defs.push_back(IFC4_IfcTextureCoordinate_type);defs.push_back(IFC4_IfcTextureVertex_type);defs.push_back(IFC4_IfcTextureVertexList_type); + IFC4_IfcPresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcColumnStandardCase_type); + IFC4_IfcColumn_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcComplexProperty_type);defs.push_back(IFC4_IfcSimpleProperty_type); + IFC4_IfcProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcComplexPropertyTemplate_type);defs.push_back(IFC4_IfcSimplePropertyTemplate_type); + IFC4_IfcPropertyTemplate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCompositeCurveOnSurface_type); + IFC4_IfcCompositeCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcCompressor_type);defs.push_back(IFC4_IfcFan_type);defs.push_back(IFC4_IfcPump_type); + IFC4_IfcFlowMovingDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcCompressorType_type);defs.push_back(IFC4_IfcFanType_type);defs.push_back(IFC4_IfcPumpType_type); + IFC4_IfcFlowMovingDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcConnectedFaceSet_type);defs.push_back(IFC4_IfcEdge_type);defs.push_back(IFC4_IfcFace_type);defs.push_back(IFC4_IfcFaceBound_type);defs.push_back(IFC4_IfcLoop_type);defs.push_back(IFC4_IfcPath_type);defs.push_back(IFC4_IfcVertex_type); + IFC4_IfcTopologicalRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcConnectionCurveGeometry_type);defs.push_back(IFC4_IfcConnectionPointGeometry_type);defs.push_back(IFC4_IfcConnectionSurfaceGeometry_type);defs.push_back(IFC4_IfcConnectionVolumeGeometry_type); + IFC4_IfcConnectionGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConnectionPointEccentricity_type); + IFC4_IfcConnectionPointGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcConstructionEquipmentResource_type);defs.push_back(IFC4_IfcConstructionMaterialResource_type);defs.push_back(IFC4_IfcConstructionProductResource_type);defs.push_back(IFC4_IfcCrewResource_type);defs.push_back(IFC4_IfcLaborResource_type);defs.push_back(IFC4_IfcSubContractResource_type); + IFC4_IfcConstructionResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcConstructionEquipmentResourceType_type);defs.push_back(IFC4_IfcConstructionMaterialResourceType_type);defs.push_back(IFC4_IfcConstructionProductResourceType_type);defs.push_back(IFC4_IfcCrewResourceType_type);defs.push_back(IFC4_IfcLaborResourceType_type);defs.push_back(IFC4_IfcSubContractResourceType_type); + IFC4_IfcConstructionResourceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConstructionResource_type); + IFC4_IfcResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConstructionResourceType_type); + IFC4_IfcTypeResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcContext_type);defs.push_back(IFC4_IfcObject_type);defs.push_back(IFC4_IfcTypeObject_type); + IFC4_IfcObjectDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcContextDependentUnit_type);defs.push_back(IFC4_IfcConversionBasedUnit_type);defs.push_back(IFC4_IfcSIUnit_type); + IFC4_IfcNamedUnit_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcConversionBasedUnitWithOffset_type); + IFC4_IfcConversionBasedUnit_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcCostValue_type); + IFC4_IfcAppliedValue_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCsgSolid_type);defs.push_back(IFC4_IfcManifoldSolidBrep_type);defs.push_back(IFC4_IfcSweptAreaSolid_type);defs.push_back(IFC4_IfcSweptDiskSolid_type); + IFC4_IfcSolidModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCurveStyle_type);defs.push_back(IFC4_IfcFillAreaStyle_type);defs.push_back(IFC4_IfcSurfaceStyle_type);defs.push_back(IFC4_IfcTextStyle_type); + IFC4_IfcPresentationStyle_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcCylindricalSurface_type);defs.push_back(IFC4_IfcPlane_type);defs.push_back(IFC4_IfcSphericalSurface_type);defs.push_back(IFC4_IfcToroidalSurface_type); + IFC4_IfcElementarySurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4_IfcDistributionChamberElement_type);defs.push_back(IFC4_IfcEnergyConversionDevice_type);defs.push_back(IFC4_IfcFlowController_type);defs.push_back(IFC4_IfcFlowFitting_type);defs.push_back(IFC4_IfcFlowMovingDevice_type);defs.push_back(IFC4_IfcFlowSegment_type);defs.push_back(IFC4_IfcFlowStorageDevice_type);defs.push_back(IFC4_IfcFlowTerminal_type);defs.push_back(IFC4_IfcFlowTreatmentDevice_type); + IFC4_IfcDistributionFlowElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4_IfcDistributionChamberElementType_type);defs.push_back(IFC4_IfcEnergyConversionDeviceType_type);defs.push_back(IFC4_IfcFlowControllerType_type);defs.push_back(IFC4_IfcFlowFittingType_type);defs.push_back(IFC4_IfcFlowMovingDeviceType_type);defs.push_back(IFC4_IfcFlowSegmentType_type);defs.push_back(IFC4_IfcFlowStorageDeviceType_type);defs.push_back(IFC4_IfcFlowTerminalType_type);defs.push_back(IFC4_IfcFlowTreatmentDeviceType_type); + IFC4_IfcDistributionFlowElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDistributionCircuit_type); + IFC4_IfcDistributionSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcDistributionControlElement_type);defs.push_back(IFC4_IfcDistributionFlowElement_type); + IFC4_IfcDistributionElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcDistributionControlElementType_type);defs.push_back(IFC4_IfcDistributionFlowElementType_type); + IFC4_IfcDistributionElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDistributionPort_type); + IFC4_IfcPort_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcDoorLiningProperties_type);defs.push_back(IFC4_IfcDoorPanelProperties_type);defs.push_back(IFC4_IfcPermeableCoveringProperties_type);defs.push_back(IFC4_IfcReinforcementDefinitionProperties_type);defs.push_back(IFC4_IfcWindowLiningProperties_type);defs.push_back(IFC4_IfcWindowPanelProperties_type); + IFC4_IfcPreDefinedPropertySet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDoorStandardCase_type); + IFC4_IfcDoor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcDoorStyle_type);defs.push_back(IFC4_IfcElementType_type);defs.push_back(IFC4_IfcSpatialElementType_type);defs.push_back(IFC4_IfcWindowStyle_type); + IFC4_IfcTypeProduct_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDraughtingPreDefinedColour_type); + IFC4_IfcPreDefinedColour_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcDraughtingPreDefinedCurveFont_type); + IFC4_IfcPreDefinedCurveFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcDuctSilencer_type);defs.push_back(IFC4_IfcFilter_type);defs.push_back(IFC4_IfcInterceptor_type); + IFC4_IfcFlowTreatmentDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcDuctSilencerType_type);defs.push_back(IFC4_IfcFilterType_type);defs.push_back(IFC4_IfcInterceptorType_type); + IFC4_IfcFlowTreatmentDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEdgeCurve_type);defs.push_back(IFC4_IfcOrientedEdge_type);defs.push_back(IFC4_IfcSubedge_type); + IFC4_IfcEdge_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEdgeLoop_type);defs.push_back(IFC4_IfcPolyLoop_type);defs.push_back(IFC4_IfcVertexLoop_type); + IFC4_IfcLoop_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcElectricFlowStorageDevice_type);defs.push_back(IFC4_IfcTank_type); + IFC4_IfcFlowStorageDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcElectricFlowStorageDeviceType_type);defs.push_back(IFC4_IfcTankType_type); + IFC4_IfcFlowStorageDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcElementQuantity_type); + IFC4_IfcQuantitySet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEvent_type);defs.push_back(IFC4_IfcProcedure_type);defs.push_back(IFC4_IfcTask_type); + IFC4_IfcProcess_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcEventTime_type);defs.push_back(IFC4_IfcLagTime_type);defs.push_back(IFC4_IfcResourceTime_type);defs.push_back(IFC4_IfcTaskTime_type);defs.push_back(IFC4_IfcWorkTime_type); + IFC4_IfcSchedulingTime_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcEventType_type);defs.push_back(IFC4_IfcProcedureType_type);defs.push_back(IFC4_IfcTaskType_type); + IFC4_IfcTypeProcess_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcExtendedProperties_type);defs.push_back(IFC4_IfcPreDefinedProperties_type);defs.push_back(IFC4_IfcProperty_type);defs.push_back(IFC4_IfcPropertyEnumeration_type); + IFC4_IfcPropertyAbstraction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcExternalSpatialElement_type); + IFC4_IfcExternalSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcExternalSpatialStructureElement_type);defs.push_back(IFC4_IfcSpatialStructureElement_type);defs.push_back(IFC4_IfcSpatialZone_type); + IFC4_IfcSpatialElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcExtrudedAreaSolid_type);defs.push_back(IFC4_IfcFixedReferenceSweptAreaSolid_type);defs.push_back(IFC4_IfcRevolvedAreaSolid_type);defs.push_back(IFC4_IfcSurfaceCurveSweptAreaSolid_type); + IFC4_IfcSweptAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcExtrudedAreaSolidTapered_type); + IFC4_IfcExtrudedAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcFaceOuterBound_type); + IFC4_IfcFaceBound_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcFaceSurface_type); + IFC4_IfcFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcFacetedBrepWithVoids_type); + IFC4_IfcFacetedBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcFailureConnectionCondition_type);defs.push_back(IFC4_IfcSlippageConnectionCondition_type); + IFC4_IfcStructuralConnectionCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcFeatureElementAddition_type);defs.push_back(IFC4_IfcFeatureElementSubtraction_type);defs.push_back(IFC4_IfcSurfaceFeature_type); + IFC4_IfcFeatureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcFurniture_type);defs.push_back(IFC4_IfcSystemFurnitureElement_type); + IFC4_IfcFurnishingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcFurnitureType_type);defs.push_back(IFC4_IfcSystemFurnitureElementType_type); + IFC4_IfcFurnishingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcGeometricCurveSet_type); + IFC4_IfcGeometricSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcGeometricRepresentationContext_type); + IFC4_IfcRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcGeometricRepresentationItem_type);defs.push_back(IFC4_IfcMappedItem_type);defs.push_back(IFC4_IfcStyledItem_type);defs.push_back(IFC4_IfcTopologicalRepresentationItem_type); + IFC4_IfcRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcGeometricRepresentationSubContext_type); + IFC4_IfcGeometricRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcGridPlacement_type);defs.push_back(IFC4_IfcLocalPlacement_type); + IFC4_IfcObjectPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcIndexedPolygonalFace_type);defs.push_back(IFC4_IfcTessellatedFaceSet_type); + IFC4_IfcTessellatedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcIndexedPolygonalFaceWithVoids_type); + IFC4_IfcIndexedPolygonalFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcIndexedTextureMap_type);defs.push_back(IFC4_IfcTextureCoordinateGenerator_type);defs.push_back(IFC4_IfcTextureMap_type); + IFC4_IfcTextureCoordinate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcIndexedTriangleTextureMap_type); + IFC4_IfcIndexedTextureMap_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcIntersectionCurve_type);defs.push_back(IFC4_IfcSeamCurve_type); + IFC4_IfcSurfaceCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcIrregularTimeSeries_type);defs.push_back(IFC4_IfcRegularTimeSeries_type); + IFC4_IfcTimeSeries_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcLightSourceAmbient_type);defs.push_back(IFC4_IfcLightSourceDirectional_type);defs.push_back(IFC4_IfcLightSourceGoniometric_type);defs.push_back(IFC4_IfcLightSourcePositional_type); + IFC4_IfcLightSource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcLightSourceSpot_type); + IFC4_IfcLightSourcePositional_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMapConversion_type); + IFC4_IfcCoordinateOperation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4_IfcMaterial_type);defs.push_back(IFC4_IfcMaterialConstituent_type);defs.push_back(IFC4_IfcMaterialConstituentSet_type);defs.push_back(IFC4_IfcMaterialLayer_type);defs.push_back(IFC4_IfcMaterialLayerSet_type);defs.push_back(IFC4_IfcMaterialProfile_type);defs.push_back(IFC4_IfcMaterialProfileSet_type); + IFC4_IfcMaterialDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMaterialDefinitionRepresentation_type);defs.push_back(IFC4_IfcProductDefinitionShape_type); + IFC4_IfcProductRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMaterialLayerSetUsage_type);defs.push_back(IFC4_IfcMaterialProfileSetUsage_type); + IFC4_IfcMaterialUsageDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMaterialLayerWithOffsets_type); + IFC4_IfcMaterialLayer_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMaterialProfileSetUsageTapering_type); + IFC4_IfcMaterialProfileSetUsage_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMaterialProfileWithOffsets_type); + IFC4_IfcMaterialProfile_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMaterialProperties_type);defs.push_back(IFC4_IfcProfileProperties_type); + IFC4_IfcExtendedProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMemberStandardCase_type); + IFC4_IfcMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcMetric_type);defs.push_back(IFC4_IfcObjective_type); + IFC4_IfcConstraint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcMirroredProfileDef_type); + IFC4_IfcDerivedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcObjectDefinition_type);defs.push_back(IFC4_IfcPropertyDefinition_type);defs.push_back(IFC4_IfcRelationship_type); + IFC4_IfcRoot_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcOccupant_type); + IFC4_IfcActor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcOpeningElement_type);defs.push_back(IFC4_IfcVoidingFeature_type); + IFC4_IfcFeatureElementSubtraction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcOpeningStandardCase_type); + IFC4_IfcOpeningElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcOuterBoundaryCurve_type); + IFC4_IfcBoundaryCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPhysicalComplexQuantity_type);defs.push_back(IFC4_IfcPhysicalSimpleQuantity_type); + IFC4_IfcPhysicalQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcPlanarBox_type); + IFC4_IfcPlanarExtent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcPlateStandardCase_type); + IFC4_IfcPlate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPolygonalFaceSet_type);defs.push_back(IFC4_IfcTriangulatedFaceSet_type); + IFC4_IfcTessellatedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPostalAddress_type);defs.push_back(IFC4_IfcTelecomAddress_type); + IFC4_IfcAddress_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcPreDefinedColour_type);defs.push_back(IFC4_IfcPreDefinedCurveFont_type);defs.push_back(IFC4_IfcPreDefinedTextFont_type); + IFC4_IfcPreDefinedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcPreDefinedPropertySet_type);defs.push_back(IFC4_IfcPropertySet_type);defs.push_back(IFC4_IfcQuantitySet_type); + IFC4_IfcPropertySetDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcPresentationLayerWithStyle_type); + IFC4_IfcPresentationLayerAssignment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcProject_type);defs.push_back(IFC4_IfcProjectLibrary_type); + IFC4_IfcContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcProjectedCRS_type); + IFC4_IfcCoordinateReferenceSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcProjectionElement_type); + IFC4_IfcFeatureElementAddition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcPropertyBoundedValue_type);defs.push_back(IFC4_IfcPropertyEnumeratedValue_type);defs.push_back(IFC4_IfcPropertyListValue_type);defs.push_back(IFC4_IfcPropertyReferenceValue_type);defs.push_back(IFC4_IfcPropertySingleValue_type);defs.push_back(IFC4_IfcPropertyTableValue_type); + IFC4_IfcSimpleProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPropertySetDefinition_type);defs.push_back(IFC4_IfcPropertyTemplateDefinition_type); + IFC4_IfcPropertyDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcPropertySetTemplate_type);defs.push_back(IFC4_IfcPropertyTemplate_type); + IFC4_IfcPropertyTemplateDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcQuantityArea_type);defs.push_back(IFC4_IfcQuantityCount_type);defs.push_back(IFC4_IfcQuantityLength_type);defs.push_back(IFC4_IfcQuantityTime_type);defs.push_back(IFC4_IfcQuantityVolume_type);defs.push_back(IFC4_IfcQuantityWeight_type); + IFC4_IfcPhysicalSimpleQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRationalBSplineCurveWithKnots_type); + IFC4_IfcBSplineCurveWithKnots_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRationalBSplineSurfaceWithKnots_type); + IFC4_IfcBSplineSurfaceWithKnots_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcRectangleHollowProfileDef_type);defs.push_back(IFC4_IfcRoundedRectangleProfileDef_type); + IFC4_IfcRectangleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcReinforcementBarProperties_type);defs.push_back(IFC4_IfcSectionProperties_type);defs.push_back(IFC4_IfcSectionReinforcementProperties_type); + IFC4_IfcPreDefinedProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcReinforcingBar_type);defs.push_back(IFC4_IfcReinforcingMesh_type);defs.push_back(IFC4_IfcTendon_type);defs.push_back(IFC4_IfcTendonAnchor_type); + IFC4_IfcReinforcingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcReinforcingBarType_type);defs.push_back(IFC4_IfcReinforcingMeshType_type);defs.push_back(IFC4_IfcTendonAnchorType_type);defs.push_back(IFC4_IfcTendonType_type); + IFC4_IfcReinforcingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcRelAggregates_type);defs.push_back(IFC4_IfcRelNests_type);defs.push_back(IFC4_IfcRelProjectsElement_type);defs.push_back(IFC4_IfcRelVoidsElement_type); + IFC4_IfcRelDecomposes_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcRelAssigns_type);defs.push_back(IFC4_IfcRelAssociates_type);defs.push_back(IFC4_IfcRelConnects_type);defs.push_back(IFC4_IfcRelDeclares_type);defs.push_back(IFC4_IfcRelDecomposes_type);defs.push_back(IFC4_IfcRelDefines_type); + IFC4_IfcRelationship_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcRelAssignsToActor_type);defs.push_back(IFC4_IfcRelAssignsToControl_type);defs.push_back(IFC4_IfcRelAssignsToGroup_type);defs.push_back(IFC4_IfcRelAssignsToProcess_type);defs.push_back(IFC4_IfcRelAssignsToProduct_type);defs.push_back(IFC4_IfcRelAssignsToResource_type); + IFC4_IfcRelAssigns_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelAssignsToGroupByFactor_type); + IFC4_IfcRelAssignsToGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4_IfcRelAssociatesApproval_type);defs.push_back(IFC4_IfcRelAssociatesClassification_type);defs.push_back(IFC4_IfcRelAssociatesConstraint_type);defs.push_back(IFC4_IfcRelAssociatesDocument_type);defs.push_back(IFC4_IfcRelAssociatesLibrary_type);defs.push_back(IFC4_IfcRelAssociatesMaterial_type); + IFC4_IfcRelAssociates_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(15); + defs.push_back(IFC4_IfcRelConnectsElements_type);defs.push_back(IFC4_IfcRelConnectsPortToElement_type);defs.push_back(IFC4_IfcRelConnectsPorts_type);defs.push_back(IFC4_IfcRelConnectsStructuralActivity_type);defs.push_back(IFC4_IfcRelConnectsStructuralMember_type);defs.push_back(IFC4_IfcRelContainedInSpatialStructure_type);defs.push_back(IFC4_IfcRelCoversBldgElements_type);defs.push_back(IFC4_IfcRelCoversSpaces_type);defs.push_back(IFC4_IfcRelFillsElement_type);defs.push_back(IFC4_IfcRelFlowControlElements_type);defs.push_back(IFC4_IfcRelInterferesElements_type);defs.push_back(IFC4_IfcRelReferencedInSpatialStructure_type);defs.push_back(IFC4_IfcRelSequence_type);defs.push_back(IFC4_IfcRelServicesBuildings_type);defs.push_back(IFC4_IfcRelSpaceBoundary_type); + IFC4_IfcRelConnects_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcRelConnectsPathElements_type);defs.push_back(IFC4_IfcRelConnectsWithRealizingElements_type); + IFC4_IfcRelConnectsElements_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelConnectsWithEccentricity_type); + IFC4_IfcRelConnectsStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4_IfcRelDefinesByObject_type);defs.push_back(IFC4_IfcRelDefinesByProperties_type);defs.push_back(IFC4_IfcRelDefinesByTemplate_type);defs.push_back(IFC4_IfcRelDefinesByType_type); + IFC4_IfcRelDefines_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelSpaceBoundary1stLevel_type); + IFC4_IfcRelSpaceBoundary_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRelSpaceBoundary2ndLevel_type); + IFC4_IfcRelSpaceBoundary1stLevel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcReparametrisedCompositeCurveSegment_type); + IFC4_IfcCompositeCurveSegment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcRevolvedAreaSolidTapered_type); + IFC4_IfcRevolvedAreaSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcShapeModel_type);defs.push_back(IFC4_IfcStyleModel_type); + IFC4_IfcRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcShapeRepresentation_type);defs.push_back(IFC4_IfcTopologyRepresentation_type); + IFC4_IfcShapeModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcSlabElementedCase_type);defs.push_back(IFC4_IfcSlabStandardCase_type); + IFC4_IfcSlab_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcSpaceType_type); + IFC4_IfcSpatialStructureElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcSpatialStructureElementType_type);defs.push_back(IFC4_IfcSpatialZoneType_type); + IFC4_IfcSpatialElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralAction_type);defs.push_back(IFC4_IfcStructuralReaction_type); + IFC4_IfcStructuralActivity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralConnection_type);defs.push_back(IFC4_IfcStructuralMember_type); + IFC4_IfcStructuralItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcStructuralCurveAction_type);defs.push_back(IFC4_IfcStructuralPointAction_type);defs.push_back(IFC4_IfcStructuralSurfaceAction_type); + IFC4_IfcStructuralAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcStructuralCurveConnection_type);defs.push_back(IFC4_IfcStructuralPointConnection_type);defs.push_back(IFC4_IfcStructuralSurfaceConnection_type); + IFC4_IfcStructuralConnection_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralCurveMember_type);defs.push_back(IFC4_IfcStructuralSurfaceMember_type); + IFC4_IfcStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralCurveMemberVarying_type); + IFC4_IfcStructuralCurveMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcStructuralCurveReaction_type);defs.push_back(IFC4_IfcStructuralPointReaction_type);defs.push_back(IFC4_IfcStructuralSurfaceReaction_type); + IFC4_IfcStructuralReaction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLinearAction_type); + IFC4_IfcStructuralCurveAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLoadCase_type); + IFC4_IfcStructuralLoadGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralLoadConfiguration_type);defs.push_back(IFC4_IfcStructuralLoadOrResult_type); + IFC4_IfcStructuralLoad_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4_IfcStructuralLoadLinearForce_type);defs.push_back(IFC4_IfcStructuralLoadPlanarForce_type);defs.push_back(IFC4_IfcStructuralLoadSingleDisplacement_type);defs.push_back(IFC4_IfcStructuralLoadSingleForce_type);defs.push_back(IFC4_IfcStructuralLoadTemperature_type); + IFC4_IfcStructuralLoadStatic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLoadSingleDisplacementDistortion_type); + IFC4_IfcStructuralLoadSingleDisplacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralLoadSingleForceWarping_type); + IFC4_IfcStructuralLoadSingleForce_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcStructuralLoadStatic_type);defs.push_back(IFC4_IfcSurfaceReinforcementArea_type); + IFC4_IfcStructuralLoadOrResult_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralPlanarAction_type); + IFC4_IfcStructuralSurfaceAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStructuralSurfaceMemberVarying_type); + IFC4_IfcStructuralSurfaceMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcStyledRepresentation_type); + IFC4_IfcStyleModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcSurfaceOfLinearExtrusion_type);defs.push_back(IFC4_IfcSurfaceOfRevolution_type); + IFC4_IfcSweptSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcSurfaceStyleRendering_type); + IFC4_IfcSurfaceStyleShading_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcSweptDiskSolidPolygonal_type); + IFC4_IfcSweptDiskSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcTaskTimeRecurring_type); + IFC4_IfcTaskTime_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcTextLiteralWithExtent_type); + IFC4_IfcTextLiteral_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcTextStyleFontModel_type); + IFC4_IfcPreDefinedTextFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4_IfcTypeProcess_type);defs.push_back(IFC4_IfcTypeProduct_type);defs.push_back(IFC4_IfcTypeResource_type); + IFC4_IfcTypeObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcVertexPoint_type); + IFC4_IfcVertex_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcWallElementedCase_type);defs.push_back(IFC4_IfcWallStandardCase_type); + IFC4_IfcWall_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4_IfcWindowStandardCase_type); + IFC4_IfcWindow_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4_IfcWorkPlan_type);defs.push_back(IFC4_IfcWorkSchedule_type); + IFC4_IfcWorkControl_type->set_subtypes(defs); + } std::vector declarations; declarations.reserve(1173); declarations.push_back(IFC4_IfcAbsorbedDoseMeasure_type); diff --git a/src/ifcparse/IfcSchema.h b/src/ifcparse/IfcSchema.h index 7190609192..68d5c2d178 100644 --- a/src/ifcparse/IfcSchema.h +++ b/src/ifcparse/IfcSchema.h @@ -195,52 +195,50 @@ namespace IfcParse { virtual const enumeration_type* as_enumeration_type() const { return this; } }; - class entity : public declaration { + class attribute { + protected: + std::string name_; + const parameter_type* type_of_attribute_; + bool optional_; + public: - class attribute { - protected: - std::string name_; - const parameter_type* type_of_attribute_; - bool optional_; + attribute(const std::string& name, parameter_type* type_of_attribute, bool optional) + : name_(name) + , type_of_attribute_(type_of_attribute) + , optional_(optional) {} - public: - attribute(const std::string& name, parameter_type* type_of_attribute, bool optional) - : name_(name) - , type_of_attribute_(type_of_attribute) - , optional_(optional) {} + const std::string& name() const { return name_; } + const parameter_type* type_of_attribute() const { return type_of_attribute_; } + bool optional() const { return optional_; } + }; - const std::string& name() const { return name_; } - const parameter_type* type_of_attribute() const { return type_of_attribute_; } - bool optional() const { return optional_; } - }; + class inverse_attribute { + public: + typedef enum { bag_type, set_type, unspecified_type } aggregate_type; + protected: + std::string name_; + aggregate_type type_of_aggregation_; + int bound1_, bound2_; + const entity* entity_reference_; + const attribute* attribute_reference_; + public: + inverse_attribute(const std::string& name, aggregate_type type_of_aggregation, int bound1, int bound2, const entity* entity_reference, const attribute* attribute_reference) + : name_(name) + , type_of_aggregation_(type_of_aggregation) + , bound1_(bound1) + , bound2_(bound2) + , entity_reference_(entity_reference) + , attribute_reference_(attribute_reference) {} - class inverse_attribute { - public: - typedef enum { bag_type, set_type, unspecified_type } aggregate_type; - protected: - std::string name_; - aggregate_type type_of_aggregation_; - int bound1_, bound2_; - const entity* entity_reference_; - const attribute* attribute_reference_; - public: - inverse_attribute(const std::string& name, aggregate_type type_of_aggregation, int bound1, int bound2, const entity* entity_reference, const attribute* attribute_reference) - : name_(name) - , type_of_aggregation_(type_of_aggregation) - , bound1_(bound1) - , bound2_(bound2) - , entity_reference_(entity_reference) - , attribute_reference_(attribute_reference) - {} + const std::string& name() const { return name_; } + aggregate_type type_of_aggregation() const { return type_of_aggregation_; } + int bound1() const { return bound1_; } + int bound2() const { return bound2_; } + const entity* entity_reference() const { return entity_reference_; } + const attribute* attribute_reference() const { return attribute_reference_; } + }; - const std::string& name() const { return name_; } - aggregate_type type_of_aggregation() const { return type_of_aggregation_; } - int bound1() const { return bound1_; } - int bound2() const { return bound2_; } - const entity* entity_reference() const { return entity_reference_; } - const attribute* attribute_reference() const { return attribute_reference_; } - }; - + class entity : public declaration { protected: const entity* supertype_; /* NB: IFC explicitly allows only single inheritance */ std::vector subtypes_; diff --git a/src/ifcparse/parse_ifcxml.cpp b/src/ifcparse/parse_ifcxml.cpp index 916ee6b307..b7e4746204 100644 --- a/src/ifcparse/parse_ifcxml.cpp +++ b/src/ifcparse/parse_ifcxml.cpp @@ -47,7 +47,7 @@ protected: node_type type_; IfcUtil::IfcBaseClass* inst_; int idx_; - const IfcParse::entity::inverse_attribute* inv_; + const IfcParse::inverse_attribute* inv_; std::string tagname_; std::string id_in_file_; const IfcParse::parameter_type* aggregate_elem_type_; @@ -92,7 +92,7 @@ public: return n; } - static stack_node inverse(IfcUtil::IfcBaseClass* inst, const IfcParse::entity::inverse_attribute* inv) { + static stack_node inverse(IfcUtil::IfcBaseClass* inst, const IfcParse::inverse_attribute* inv) { stack_node n; n.type_ = node_inverse; n.inst_ = inst; @@ -125,7 +125,7 @@ public: IfcUtil::IfcBaseClass* inst() const { return inst_; } int idx() const { return idx_; } - const IfcParse::entity::inverse_attribute* inv_attr() const { return inv_; } + const IfcParse::inverse_attribute* inv_attr() const { return inv_; } const std::string& tagname() const { return tagname_; } const std::string& id_in_file() const { return id_in_file_; } const IfcParse::parameter_type* aggregate_elem_type() const { return aggregate_elem_type_; } @@ -483,7 +483,7 @@ static void start_element(void* user, const xmlChar* tag, const xmlChar** attrs) auto idx = current->attribute_index(tagname); if (idx == -1) { auto inverses = current->all_inverse_attributes(); - auto found = std::find_if(inverses.begin(), inverses.end(), [&tagname](const IfcParse::entity::inverse_attribute* attr) { + auto found = std::find_if(inverses.begin(), inverses.end(), [&tagname](const IfcParse::inverse_attribute* attr) { return attr->name() == tagname; }); if (found == inverses.end()) { diff --git a/src/ifcwrap/IfcParseWrapper.i b/src/ifcwrap/IfcParseWrapper.i index 67616f0f54..29b1e2bb0f 100644 --- a/src/ifcwrap/IfcParseWrapper.i +++ b/src/ifcwrap/IfcParseWrapper.i @@ -136,8 +136,8 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } { - const std::vector attrs = $self->declaration().as_entity()->all_attributes(); - std::vector::const_iterator it = attrs.begin(); + const std::vector attrs = $self->declaration().as_entity()->all_attributes(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { if ((*it)->name() == name) { return 1; @@ -146,8 +146,8 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } { - const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); - std::vector::const_iterator it = attrs.begin(); + const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { if ((*it)->name() == name) { return 2; @@ -178,12 +178,12 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas return std::vector(1, "wrappedValue"); } - const std::vector attrs = $self->declaration().as_entity()->all_attributes(); + const std::vector attrs = $self->declaration().as_entity()->all_attributes(); std::vector attr_names; attr_names.reserve(attrs.size()); - std::vector::const_iterator it = attrs.begin(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { attr_names.push_back((*it)->name()); } @@ -196,12 +196,12 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas return std::vector(0); } - const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); + const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); std::vector attr_names; attr_names.reserve(attrs.size()); - std::vector::const_iterator it = attrs.begin(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { attr_names.push_back((*it)->name()); } @@ -260,8 +260,8 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } IfcEntityList::ptr get_inverse(const std::string& a) { - const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); - std::vector::const_iterator it = attrs.begin(); + const std::vector attrs = $self->declaration().as_entity()->all_inverse_attributes(); + std::vector::const_iterator it = attrs.begin(); for (; it != attrs.end(); ++it) { if ((*it)->name() == a) { return self->data().getInverse( @@ -586,6 +586,98 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas } %} +%extend IfcParse::named_type { + %pythoncode %{ + def __repr__(self): + return repr(self.declared_type()) + %} +} + +%extend IfcParse::simple_type { + %pythoncode %{ + def __repr__(self): + return "<%s>" % self.declared_type() + %} +} + +%extend IfcParse::aggregation_type { + std::string type_of_aggregation() const { + static const char* const aggr_strings = ["array", "bag", "list", "set"]; + return aggr_strings[(int) type_of_aggregation_]; + } + %pythoncode %{ + def __repr__(self): + format_bound = lambda i: "?" if i == -1 else str(i) + return "<%s [%s:%s] of %r>" % ( + self.type_of_aggregation(), + format_bound(self.bound1()), + format_bound(self.bound2()), + self.type_of_element() + ) + %} +} + +%extend IfcParse::type_declaration { + %pythoncode %{ + def __repr__(self): + return "" % (self.name(), self.declared_type()) + %} +} + +%extend IfcParse::select_type { + %pythoncode %{ + def __repr__(self): + return "." + IfcUtil::path::from_utf8(DEFAULT_EXTENSION) + " will be used as the output file.\n"; + << "If no output filename given, ." << IfcUtil::path::from_utf8(DEFAULT_EXTENSION) << " will be used as the output file.\n"; if (suggest_help) { cout_ << "\nRun 'IfcConvert --help' for more information."; } @@ -209,15 +209,6 @@ int main(int argc, char** argv) { #endif ("input-file", new po::typed_value(0), "input IFC file") ("output-file", new po::typed_value(0), "output geometry file"); - - - double deflection_tolerance; - inclusion_filter include_filter; - inclusion_traverse_filter include_traverse_filter; - exclusion_filter exclude_filter; - exclusion_traverse_filter exclude_traverse_filter; - std::string filter_filename; - std::string default_material_filename; po::options_description ifc_options("IFC options"); ifc_options.add_options() @@ -531,7 +522,7 @@ int main(int argc, char** argv) { STP = IfcUtil::path::from_utf8(".stp"), IGS = IfcUtil::path::from_utf8(".igs"), SVG = IfcUtil::path::from_utf8(".svg"), - XML = IfcUtil::path::from_utf8(".xml"); + XML = IfcUtil::path::from_utf8(".xml"), IFC = IfcUtil::path::from_utf8(".ifc"); // @todo clean up serializer selection @@ -559,7 +550,7 @@ int main(int argc, char** argv) { } else if (output_extension == IFC) { int exit_code = EXIT_FAILURE; try { - if (init_input_file(input_filename, ifc_file, no_progress || quiet, mmap)) { + if (init_input_file(IfcUtil::path::to_utf8(input_filename), ifc_file, no_progress || quiet, mmap)) { time_t start, end; time(&start); std::ofstream fs(output_filename.c_str()); diff --git a/src/ifcparse/IfcLogger.cpp b/src/ifcparse/IfcLogger.cpp index 55eb7faffb..c841352d5e 100644 --- a/src/ifcparse/IfcLogger.cpp +++ b/src/ifcparse/IfcLogger.cpp @@ -49,12 +49,12 @@ namespace { void plain_text_message(T& os, const boost::optional& current_product, Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { os << "[" << severity_strings::value[type] << "] "; if (current_product) { - std::string global_id = *(**current_product).get("GlobalId")); + std::string global_id = *((IfcUtil::IfcBaseEntity*)*current_product)->get("GlobalId"); os << "{" << global_id.c_str() << "} "; } os << message.c_str() << std::endl; if (instance) { - std::string instance_string = entity->data().toString(); + std::string instance_string = instance->data().toString(); if (instance_string.size() > 259) { instance_string = instance_string.substr(0, 256) + "..."; } @@ -113,18 +113,6 @@ void Logger::SetOutput(std::wostream* l1, std::wostream* l2) { } } -template -void Logger::log(T& log2, Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { - log2 << "[" << severity_strings::value[type] << "] "; - if (current_product) { - log2 << "{" << (*current_product)->GlobalId().c_str() << "} "; - } - log2 << message.c_str() << std::endl; - if (instance) { - log2 << instance->data().toString().c_str() << std::endl; - } -} - void Logger::Message(Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseClass* instance) { if ((log2 || wlog2) && type >= verbosity) { if (format == FMT_PLAIN) { diff --git a/src/ifcparse/IfcLogger.h b/src/ifcparse/IfcLogger.h index 4f5b0a4d4c..9ae7f49e39 100644 --- a/src/ifcparse/IfcLogger.h +++ b/src/ifcparse/IfcLogger.h @@ -53,10 +53,6 @@ private: static Format format; static boost::optional current_product; static Severity max_severity; - static boost::optional current_product; - - template - static void log(T& log2, Logger::Severity type, const std::string& message, IfcUtil::IfcBaseClass* instance); public: static void SetProduct(boost::optional product); From e43e02c003f887b1dd143f8c4224eec6d9c97eee Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 13 Mar 2019 13:32:24 +0100 Subject: [PATCH 38/52] Vector of bool type conversion in python wrapper. --- src/ifcwrap/utils/typemaps_out.i | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ifcwrap/utils/typemaps_out.i b/src/ifcwrap/utils/typemaps_out.i index 6be9b98110..338898db69 100644 --- a/src/ifcwrap/utils/typemaps_out.i +++ b/src/ifcwrap/utils/typemaps_out.i @@ -128,6 +128,7 @@ } %enddef +CREATE_VECTOR_TYPEMAP_OUT(bool) CREATE_VECTOR_TYPEMAP_OUT(int) CREATE_VECTOR_TYPEMAP_OUT(unsigned int) CREATE_VECTOR_TYPEMAP_OUT(double) From 5e54e84a92d9624c33151db2716e93102444bb30 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 19 Mar 2019 11:02:24 +0100 Subject: [PATCH 39/52] Delete MVD module now separate repo --- .../ifcopenshell/mvd/__init__.py | 207 ------ .../ifcopenshell/mvd/mvdxml_expression.py | 18 - .../ifcopenshell/mvd/sparql.py | 609 ------------------ 3 files changed, 834 deletions(-) delete mode 100644 src/ifcopenshell-python/ifcopenshell/mvd/__init__.py delete mode 100644 src/ifcopenshell-python/ifcopenshell/mvd/mvdxml_expression.py delete mode 100644 src/ifcopenshell-python/ifcopenshell/mvd/sparql.py diff --git a/src/ifcopenshell-python/ifcopenshell/mvd/__init__.py b/src/ifcopenshell-python/ifcopenshell/mvd/__init__.py deleted file mode 100644 index b7bdebae67..0000000000 --- a/src/ifcopenshell-python/ifcopenshell/mvd/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import sys -from . import mvdxml_expression - -from xml.dom.minidom import parse, Element - -class rule(object): - """ - A class for representing an mvdXML EntityRule or AttributeRule - """ - - def __init__(self, tag, attribute, nodes, bind=None, optional=False): - self.tag, self.attribute, self.nodes, self.bind = tag, attribute, nodes, bind - self.optional = optional - - def to_string(self, indent=0): - return "%s%s%s[%s](%s%s)%s" % ("\n" if indent else "", " "*indent, self.tag, self.attribute, "".join(n.to_string(indent+2) for n in self.nodes), ("\n" + " "*indent) if len(self.nodes) else "", (" -> %s" % self.bind) if self.bind else "") - - def __repr__(self): - return self.to_string() - -class template(object): - """ - Representation of an mvdXML template - """ - - def __init__(self, concept, root, params=None, rules=None): - self.concept, self.root, self.params = concept, root, params - self.rules = rules or [] - self.entity = str(root.attributes['applicableEntity'].value) - self.name = root.attributes['name'].value - - def bind(self, params): - return template(self.concept, self.root, params, self.rules) - - def parse(self): - for rules in self.root.childNodes: - if not isinstance(rules, Element): continue - - for r in rules.childNodes: - if not isinstance(r, Element): continue - self.rules.append(self.parse_rule(r)) - - - def traverse(self, fn, root=None, with_parents=False): - def _(n, p=root, ps=[root]): - if with_parents: - close = fn(rule=n, parents=ps) - else: - close = fn(rule=n, parent=p) - - for s in n.nodes: - _(s, n, ps + [n]) - - if close: - close() - - for r in self.rules: - _(r) - - def parse_rule(self, root): - def visit(node, prefix=""): - r = None - n = node - nm = None - p = prefix - optional=False - - if node.tagName == "AttributeRule": - r = node.attributes["AttributeName"].value - try: - nm = node.attributes["RuleID"].value - except: - # without binding, it's wrapped in a SPARQL OPTIONAL {} clause - # Aim is to insert this clause once as high in the stack as possible - # All topmost attribute rules are optional anyway as in the binding requirements on existence is specified - - def child_has_ruleid_or_prefix(node): - if type(node).__name__ == "Element": - if "RuleID" in node.attributes or "IdPrefix" in node.attributes: - return True - for n in node.childNodes: - if child_has_ruleid_or_prefix(n): return True - - optional = node.parentNode.tagName == "Rules" or not child_has_ruleid_or_prefix(node) - elif node.tagName == "EntityRule": - r = node.attributes["EntityName"].value - elif node.tagName == "References": - ref = node.getElementsByTagName("Template")[0].attributes['ref'].value - n = self.concept.template(ref).root - try: p = p + node.attributes["IdPrefix"].value - except: pass - - def _(n): - for subnode in n.childNodes: - if not isinstance(subnode, Element): continue - for x in visit(subnode, p): yield x - - if r: - yield rule(node.tagName, r, list(_(n)), (p + nm) if nm else nm, optional=optional) - else: - for subnode in n.childNodes: - if not isinstance(subnode, Element): continue - for x in visit(subnode, p): yield x - - return list(visit(root))[0] - -class concept_or_applicability(object): - """ - Representation of either a mvdXML Concept or the Applicability node. Basically a structure - for the hierarchical TemplateRule - """ - - def __init__(self, root, c): - self.root = root - self.concept_node = c - try: - self.name = c.attributes["name"].value - except: - # probably applicability and not concept - self.name = "Applicability" - - def template(self, id = None): - if id is None: - id = self.concept_node.getElementsByTagName("Template")[0].attributes['ref'].value - - for node in self.root.dom.getElementsByTagName("ConceptTemplate"): - if node.attributes["uuid"].value == id: - t = template(self, node) - t.parse() - t_with_rules = t.bind(self.rules()) - return t_with_rules - - - def rules(self): - # Get the top most TemplateRule and traverse - rules = self.concept_node.getElementsByTagName("TemplateRules")[0] - - def visit(rules): - def _(): - for i, r in enumerate([c for c in rules.childNodes if isinstance(c, Element)]): - if i: - yield rules.attributes["operator"].value - if r.tagName == "TemplateRules": - yield visit(r) - elif r.tagName == "TemplateRule": - yield mvdxml_expression.parse(r.attributes["Parameters"].value) - else: - raise Exception() - - return list(_()) - - return visit(rules) - -class concept_root(object): - def __init__(self, dom, root): - self.dom, self.root = dom, root - self.name = root.attributes['name'].value - self.entity = str(root.attributes['applicableRootEntity'].value) - - def applicability(self): - return concept_or_applicability(self, self.root.getElementsByTagName("Applicability")[0]) - - def concepts(self): - for c in self.root.getElementsByTagName("Concept"): - yield concept_or_applicability(self, c) - - @staticmethod - def parse(fn): - dom = parse(fn) - try: - root = dom.getElementsByTagName("ConceptRoot")[0] - CR = concept_root(dom, root) - return CR - except: - root = dom.getElementsByTagName("ConceptTemplate")[0] - t = template(None, root) - t.parse() - return t - - -if __name__ == "__main__": - - if len(sys.argv) == 3: - from . import sparql - ttlfn, mvdfn = sys.argv[1:] - sparql.derive_prefix(ttlfn) - ttlfn = sparql.infer_subtypes(ttlfn) - MVD = concept_root.parse(mvdfn) - sparql.executor.run(MVD, mvdfn, ttlfn) - - else: - mvdfn = sys.argv[1] - MVD = concept_root.parse(mvdfn) - - def dump(rule, parents): - print(" " * len(parents), rule.tag, rule.attribute) - - for c in MVD.concepts(): - print(c.name) - print() - - t = c.template() - print("RootEntity", t.entity) - t.traverse(dump, with_parents=True) - print(" ".join(map(str, t.params))) - - print() diff --git a/src/ifcopenshell-python/ifcopenshell/mvd/mvdxml_expression.py b/src/ifcopenshell-python/ifcopenshell/mvd/mvdxml_expression.py deleted file mode 100644 index 27adf95007..0000000000 --- a/src/ifcopenshell-python/ifcopenshell/mvd/mvdxml_expression.py +++ /dev/null @@ -1,18 +0,0 @@ -import pyparsing as pp - -class node(object): - def __init__(self, args): - assert (args[1], args[3], args[4]) == ('[', ']', '=') - self.a, self.b, self.c = args[0], args[2], args[5] - def __repr__(self): return "{%s[%s]=%s}" % (self.a, self.b, self.c) - -word = pp.Word(pp.alphanums+"_") -quoted = pp.Combine("'" + word + "'") -bool_value = pp.CaselessLiteral("TRUE") | pp.CaselessLiteral("FALSE") -rhs = quoted | bool_value -stmt = (word + "[" + word + "]" + "=" + rhs).setParseAction(node) -bool_op = pp.CaselessLiteral("AND") | pp.CaselessLiteral("OR") -grammar = stmt + pp.Optional(pp.OneOrMore(bool_op + stmt)) - -def parse(expr): - return grammar.parseString(expr) diff --git a/src/ifcopenshell-python/ifcopenshell/mvd/sparql.py b/src/ifcopenshell-python/ifcopenshell/mvd/sparql.py deleted file mode 100644 index 706b589c7d..0000000000 --- a/src/ifcopenshell-python/ifcopenshell/mvd/sparql.py +++ /dev/null @@ -1,609 +0,0 @@ -import io -import os -import csv -import platform -import tabulate -import operator -import itertools -import subprocess -import ifcopenshell - -from collections import defaultdict - -import mvdxml_expression - -def camel(s): - """ - Camel case conversion function - :param s: str - :return: camel case formatted string - """ - - s = s.title().replace(" ", "") - if s.endswith("s"): s = s[:-1] - return s[0].lower() + s[1:] - - -STANDARD_PREFIXES = { - 'rdf': '', - 'owl': '', - 'xsd': '', - 'list': '', - 'ifcowl': '', - 'express': '', -} - -def derive_prefix(ttlfn): - with open(ttlfn, "r") as f: - for ln in f: - ln.strip() - if ln.startswith("@prefix ifcowl"): - uri = ln.split(':', 1)[1].strip()[:-1].strip() - print("Detected ifcowl prefix", uri) - STANDARD_PREFIXES['ifcowl'] = uri - break - -def withschema(fn): - """ - Decorator that takes a function and adds an IFC latebound schema definition - in the first parameter. The schema identifier is looked up based on the - global ifcOwl prefix. - - :param fn: input function - :return: decorated function - """ - - def _(*args, **kwargs): - schema_name = STANDARD_PREFIXES['ifcowl'].split('/')[-1][:-2] - if "_" in schema_name: - schema_name = schema_name.split('_')[0] - S = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name) - return fn(S, *args, **kwargs) - return _ - -noop = lambda *args: None - -class rule_binding(object): - """ - Object for mapping rules to generated SPARQL variables - """ - def __init__(self): - pass - - -class builder(object): - """ - A helper class for dealing with SPARQL query statements - """ - - def __init__(self): - self.prefixes = {"express": "", "ifcowl": ""} - self.statements = [] - - def append(self, *stmt): - if len(stmt) == 3: - for i, pos in enumerate(stmt[1:]): - for po in pos.split("/"): - if ":" in pos: - a, b = po.split(':') - self.prefixes[a] = '' - self.statements.append(stmt) - - def bind(self, di): - for k in set(self.prefixes.keys()) & set(di.keys()): - self.prefixes[k] = di[k] - - def x(self): - return len(self.statements) - - def __repr__(self): - def f(s): - S = " ".join(s) - if len(s) == 3: S += ' .' - return S - - def g(s): - return "PREFIX %s: %s" % s - - return "\n".join(itertools.chain( - (g(s) for s in self.prefixes.items()), - (f(s) for s in self.statements) - )) - -class ifcOwl(object): - """ - Helper class with static function for dealing with ifcOwl attribute names - """ - - @staticmethod - @withschema - def supertypes(S, entity): - """ - Yields ifcOwl subtypes for the supplied entity name - - :param S: schema definition (from decorator) - :param entity: entity name string - :return: - """ - - a, b = entity.split('#') - try: - en = S.declaration_by_name(b) - if en.__class__.__name__ == "entity": - while en.supertype(): - yield "%s#%s" % (a, en.supertype().name()) - en = en.supertype() - except: pass - - @staticmethod - def get_names(e, c): - """ - Returns inverse or forward attribute names for latebound entity definition - - :param e: latebound entity definition - :param c: either 'all_attributes' or 'all_inverse_attributes' - :return: set of attribute names - """ - - return set(map(lambda a: a.name(), getattr(e, c)())) - - @staticmethod - @withschema - def is_boxed(S, entity, attribute, predCount=0): - """ - Returns whether the entity attribute should be boxed in ifcOwl. Which means - that there is an additional indirection. - - inst:IfcRelDefinesByType_21937 - ifcowl:globalId_IfcRoot inst:IfcGloballyUniqueId_117684 ; - - inst:IfcGloballyUniqueId_117684 - rdf:type ifcowl:IfcGloballyUniqueId ; - express:hasString "2P9FPkykn0r8rCpmBxZH0w" . - - :param S: schema definition (from decorator) - :param entity: entity name string - :param attribute: attribute name string - :param predCount: numeric identifier to postfix predicate identifier in case of SELECT types - :return: either a predicate from the express namespace or a variable postfixed with predCount - """ - - en = S.declaration_by_name(entity) - attr = [a for a in en.all_attributes() if a.name() == attribute][0] - ty = attr.type_of_attribute() - is_boxed = False - while isinstance(ty, ifcopenshell.ifcopenshell_wrapper.named_type): - ty = ty.declared_type() - - if isinstance(ty, ifcopenshell.ifcopenshell_wrapper.select_type): - - # Just assume there is going to be some boxed type in here. - # It could be all instance references, but fact is we don't know at this moment. - # It's likely that mvdXML will only bind to literals? - - return "?pred%d" % predCount - - else: - - while isinstance(ty, ifcopenshell.ifcopenshell_wrapper.type_declaration): - is_boxed = True - ty = ty.declared_type() - if is_boxed and isinstance(ty, ifcopenshell.ifcopenshell_wrapper.simple_type): - ty = ty.declared_type() - return "express:has%s%s" % (ty[0].upper(), ty[1:]) - - return False - - @staticmethod - @withschema - def name(S, entity, attribute): - """ - Names the entity attribute according to ifcOwl - - :param S: - :param entity: - :param attribute: - :return: - """ - en = S.declaration_by_name(entity) - - while True: - st = en.supertype() - - attribute_names = ifcOwl.get_names(en, "all_attributes") | \ - ifcOwl.get_names(en, "all_inverse_attributes") - - if st: - attribute_names -= ifcOwl.get_names(st, "all_attributes") | \ - ifcOwl.get_names(st, "all_inverse_attributes") - - if attribute in attribute_names: - return "ifcowl:" + attribute[0].lower() + attribute[1:] + "_" + en.name() - - en = st - - if en is None: - raise AttributeError("%s not found on %s" % (attribute, entity)) - - @staticmethod - @withschema - def is_select(S, decl_name): - """ - Returns True when the declaration is a select type - - :param S: - :param decl_name: - :return: - """ - decl = S.declaration_by_name(decl_name) - return isinstance(decl, ifcopenshell.ifcopenshell_wrapper.select_type) - - @staticmethod - @withschema - def is_inverse(S, entity, attribute): - """ - When entity attribute is an INVERSE attribute, returns the opposite - forward entity and attribute name. Otherwise returns (False, False) - - :param S: - :param entity: - :param attribute: - :return: - """ - - en = S.declaration_by_name(entity) - attrs = [a for a in en.all_inverse_attributes() if a.name() == attribute] - if not attrs: return False, False - - a = attrs[0] - assert a.type_of_aggregation_string() == "set" - entity = a.entity_reference().name() - attr = a.attribute_reference().name() - return "ifcowl:" + entity, ifcOwl.name(entity, attr) - -class convertor(object): - - @staticmethod - def convert(item, *args, **kwargs): - return getattr(convertor, item.__class__.__name__)(item, *args, **kwargs) - - @staticmethod - def concept_or_applicability(concept): - """ - Convert the Template (SELECT ... WHERE {}) structure and TemplateRule (FILTER) - - :param qtype: 0 or 1, 0 for a general query matching the applicableRootEntity - :return: - """ - - bld = builder() - t = concept.template() - bld.append("# %s" % camel(concept.root.name)) - convertor.template(t, bld, concept.root.entity) - bld.bind(STANDARD_PREFIXES) - - return bld - - @staticmethod - def root(rootEntity): - args = ["URI", "GlobalId"] - - b = builder() - b.args = args - b.append("SELECT " + " ".join("?" + a for a in args) + " WHERE {") - b.append("?URI", "rdf:type", "ifcowl:%s" % rootEntity) - b.append("?URI", "ifcowl:globalId_IfcRoot/express:hasString", "?GlobalId") - b.append("}") - b.bind(STANDARD_PREFIXES) - - return b - - @staticmethod - def template(template, bld = None, rootEntity = None): - if bld is None: - bld = builder() - - if rootEntity is None: - rootEntity = template.entity - - args = ["URI", "GlobalId"] - - def enumerate(rule, **kwargs): - if rule.bind: - args.append(rule.bind) - - template.traverse(enumerate) - - bld.args = args - - bld.append("SELECT " + " ".join("?" + a for a in args) + " WHERE {") - - args = set(args) - - bld.append("?URI", "rdf:type", "ifcowl:%s" % rootEntity) - bld.append("?URI", "ifcowl:globalId_IfcRoot/express:hasString", "?GlobalId") - - nm = "?URI" - ROOT = type('_', (), {'attribute': rootEntity})() - # rule_stack = [ROOT] - # name_stack = [nm] - # callback_stack = [noop] - # G = type('_', (object,), dict(indent = 0, nm = nm, next_nm=None, first=True)) - - rule_mapping = defaultdict(rule_binding) - rule_mapping[ROOT].name = nm - - def build(rule, parents): - # print "AAA", rule.tag, parent.tag if parent else parent - # print map(id, rule_stack) - # print name_stack - INDENT = " " * (len(parents) * 2) - return_value = None - - if rule.optional: - bld.append(INDENT + "OPTIONAL {") - return_value = lambda: bld.append(INDENT + "}") - - if rule.tag == "EntityRule": - # G.nm = G.next_nm - - if not ifcOwl.is_select(rule.attribute): - # SELECT types should never be qualified as they cannot be infered - bld.append(INDENT + rule_mapping[parents[-1]].name, "rdf:type", "ifcowl:" + rule.attribute) - - # propagate binding name - rule_mapping[rule].name = rule_mapping[parents[-1]].name - else: - - # if rule_stack[-1] is parent: - # # print "sl", id(parent), id(rule) - # # same level - # pass - # elif parent in rule_stack: - # # print "up", id(parent), id(rule) - # while rule_stack[-1] is not parent: - # # rule_stack.pop() - # name_stack.pop() - # callback_stack.pop()() - # else: - # # print "dn", id(parent), id(rule) - # pass - - indirect = False - - if rule.bind: - if len(rule.nodes) == 1: - indirect = ifcOwl.is_boxed(parents[-1].attribute, rule.attribute, predCount=bld.x()) - - if rule.bind and not indirect: - next_nm = "?" + rule.bind - else: - next_nm = "?var%d" % bld.x() - - rule_mapping[rule].name = next_nm - - inventy, invattr = ifcOwl.is_inverse(parents[-1].attribute, rule.attribute) - if invattr: - # This seems not to be necessary, because the entity name is also stated in mvdXML - # q.append( - # next_nm, - # "rdf:type", - # inventy - # ) - bld.append( - INDENT + next_nm, - invattr, - rule_mapping[parents[-1]].name - ) - else: - bld.append( - INDENT + rule_mapping[parents[-1]].name, - ifcOwl.name(parents[-1].attribute, rule.attribute), - next_nm - ) - - if rule.bind and indirect: - # For boxed literals, only strings atm - bld.append(INDENT + next_nm, indirect, "?" + rule.bind) - - # rule_stack.append(rule) - # name_stack.append(next_nm) - # if rule.optional: - # callback_stack.append(lambda: q.append(INDENT+"}")) - # else: - # callback_stack.append(noop) - - # print(q.statements[-1]) - - return return_value - - template.traverse(build, root=ROOT, with_parents=True) - - # while callback_stack: - # callback_stack.pop()() - - if template.params: - bld.append(convertor.build_filter(template)) - - bld.append("}") - - return bld - - @staticmethod - def build_filter(self): - def v(p): - if isinstance(p, mvdxml_expression.node): - if p.b == "Value": - if p.c.lower() in {'true', 'false'}: - yield "(%s?%s)" % ("!" if p.c.lower() == "false" else "", p.a) - else: - yield "(?%s = %s)" % (p.a, p.c) - elif p.b == "Exists": - yield "(!isBLANK(?%s))" % p.a - else: - raise Exception("Unsupported " + p.b) - elif isinstance(p, str): - yield { - "and": "&&", - "or": "||", - "not": "&& !" - }[p.lower()] - else: - yield "(" - for q in p: - yield from v(q) - yield ")" - - return "FILTER(%s)" % " ".join(v(self.params)) - -def infer_subtypes(ttlfn): - # Disabled currently - return ttlfn - - if not os.path.exists(ttlfn + ".subclass.nt"): - - print("Infering supertype relationships") - - import hashlib - import rdflib - - a = rdflib.namespace.RDF.type - - # Hardly possible on Windows - # graph = rdflib.Graph("Sleepycat") - # graph.open("store", create=True) - # graph.parse(ttlfn) - - from sqlalchemy import create_engine - from rdflib_sqlalchemy.store import SQLAlchemy - - if os.path.exists("db.sqlite"): - os.unlink("db.sqlite") - - uri = rdflib.Literal("sqlite:///%(here)s/db.sqlite" % {"here": os.getcwd()}) - ident = rdflib.URIRef(hashlib.sha1(ttlfn.encode()).hexdigest()) - engine = create_engine(uri) - store = SQLAlchemy( - identifier=ident, - engine=engine, - ) - graph = rdflib.Graph( - store, - identifier=ident, - ) - graph.open(uri, create=True) - graph.parse(ttlfn, format="ttl") - - # print out all the triples in the graph - def _(): - for subject, predicate, object in graph: - if predicate == a: - for sup in ifcOwl.supertypes(object): - yield subject, a, rdflib.URIRef(sup) - - for stmt in list(_()): - graph.add(stmt) - - graph.serialize(destination=ttlfn + ".subclass.nt", format="nt") - - ttlfn += ".subclass.nt" - -if platform.system() == "Windows": - JENA_SPARQL = os.path.join(os.environ.get("JENA_HOME"), "bat", "sparql.bat") -else: - JENA_SPARQL = "sparql" - -class executor(object): - @staticmethod - def run(CR, fn, ttlfn): - """ - Generates SPARQL queries for the parsed MVD and executes on the building model - - :param CR: A parsed concept root - :param fn: A filename used as the prefix to store generate SPARQL queries to disk - :param ttlfn: A filename for the LD representation of an IFC model - :return: - """ - - def dict_to_list(headers): - return lambda di: [di[h] for h in headers] - - def execute(query, *args): - sparqlfn = ".".join(itertools.chain([fn], map(str, args))) + ".sparql" - with open(sparqlfn, "w") as f: - print(query, file=f) - - proc = subprocess.Popen( - [JENA_SPARQL, "--data=" + ttlfn, "--query=" + sparqlfn, "--results=CSV"], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = proc.communicate() - - csvf = io.StringIO(stdout.decode('utf-8')) - - return list(csv.DictReader(csvf)) - - root_query = convertor.root(CR.entity) - roots = execute(root_query, 0) - - print("\nFile contains %d elements of type %s" % (len(roots), CR.entity)) - - passing_all = {} - - # for summary below - num_columns = 0 - - try: - # Full MVD with multiple concepts - is_template = False - concept_enumerator = list(itertools.chain([CR.applicability()], CR.concepts())) - except: - is_template = True - concept_enumerator = [CR] - - for ci, C in enumerate(concept_enumerator): - - num_columns += 1 - - if is_template or ci > 1: - print("\n%s" % C.name) - else: - print("\nApplicability") - - query = convertor.convert(C) - - print("\nSPARQL query") - print("============") - print(query) - - passing = execute(query, ci, 1) - passing_guids = set(r['GlobalId'] for r in passing) - - print("\nElements passing") - print(tabulate.tabulate(list(map(dict_to_list(query.args), passing)), query.args, tablefmt="grid")) - - print("\nElements failing concept") - hd = ["URI", "GlobalId"] - print(tabulate.tabulate( - list(map(dict_to_list(hd), [r for r in roots if r["GlobalId"] not in passing_guids])), hd, - tablefmt="grid")) - - passing_all[ci] = passing_guids - - print("\nSummary") - - for ci, C in enumerate(concept_enumerator): - print("(%d) %s" % (ci+(0 if is_template else 0), C.name)) - - def get_stats(guid): - v = lambda i: guid in passing_all[i] - st = [guid] + ["x" if v(i) else "" for i in range(num_columns)] - if not is_template: - st += ["x" if not v(0) or all(v(i) for i in range(1, num_columns)) else " "] - return st - - hd = ["GlobalId"] + list(map(str, range(num_columns))) - if not is_template: - hd += ["Valid"] - - print(tabulate.tabulate(list(map(get_stats, map(operator.itemgetter("GlobalId"), roots))), hd, tablefmt="grid")) \ No newline at end of file From 2bf3648966d762d9f6857beeba7990e46a45da25 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 19 Mar 2019 11:04:24 +0100 Subject: [PATCH 40/52] Add MVD subrepo --- .gitmodules | 3 +++ src/ifcopenshell-python/ifcopenshell/mvd | 1 + 2 files changed, 4 insertions(+) create mode 160000 src/ifcopenshell-python/ifcopenshell/mvd diff --git a/.gitmodules b/.gitmodules index 5bb14b5c42..9833ed4832 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,6 @@ path = test/input url = https://github.com/IfcOpenShell/files ignore = dirty +[submodule "src/ifcopenshell-python/ifcopenshell/mvd"] + path = src/ifcopenshell-python/ifcopenshell/mvd + url = https://github.com/opensourceBIM/python-mvdxml/ diff --git a/src/ifcopenshell-python/ifcopenshell/mvd b/src/ifcopenshell-python/ifcopenshell/mvd new file mode 160000 index 0000000000..6c4c5afc21 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/mvd @@ -0,0 +1 @@ +Subproject commit 6c4c5afc217e4d39774e2e7025fb80e8685a42f2 From 8c1924084ac45c61952bead2215e782211a121fd Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 24 Mar 2019 12:36:33 +0100 Subject: [PATCH 41/52] Don't consider openings as children in geom filters --- src/ifcgeom/IfcGeom.h | 2 +- src/ifcgeom/IfcGeomFilter.h | 16 ++++++++-------- src/ifcgeom/IfcGeomFunctions.cpp | 16 ++++++++-------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/ifcgeom/IfcGeom.h b/src/ifcgeom/IfcGeom.h index a927e42efd..13dc5acba8 100644 --- a/src/ifcgeom/IfcGeom.h +++ b/src/ifcgeom/IfcGeom.h @@ -268,7 +268,7 @@ public: std::pair initializeUnits(IfcSchema::IfcUnitAssignment*); - static IfcSchema::IfcObjectDefinition* get_decomposing_entity(IfcSchema::IfcProduct*); + static IfcSchema::IfcObjectDefinition* get_decomposing_entity(IfcSchema::IfcProduct*, bool include_openings=true); static std::map get_layers(IfcSchema::IfcProduct* prod); diff --git a/src/ifcgeom/IfcGeomFilter.h b/src/ifcgeom/IfcGeomFilter.h index 4fbeca2726..3d0c431430 100644 --- a/src/ifcgeom/IfcGeomFilter.h +++ b/src/ifcgeom/IfcGeomFilter.h @@ -42,13 +42,15 @@ namespace IfcGeom struct filter { - filter() : include(false), traverse(false) {} - filter(bool incl, bool trav) : include(incl), traverse(trav) {} + filter() : include(false), traverse(false), traverse_openings(false) {} + filter(bool incl, bool trav, bool trav_openings = false) : include(incl), traverse(trav), traverse_openings(trav_openings) {} /// Should the product be included (true) or excluded (false). bool include; /// If traversal requested, traverse to the parents to see if they satisfy the criteria. E.g. we might be looking for /// children of a storey named "Level 20", or children of entities that have no representation, e.g. IfcCurtainWall. bool traverse; + /// Include opening relationships as part of traversal. + bool traverse_openings; /// Optional description for the filtering criteria of this filter. std::string description; @@ -61,10 +63,10 @@ namespace IfcGeom return is_match == include; } - static bool traverse_match(IfcSchema::IfcProduct* prod, const filter_t& pred) + bool traverse_match(IfcSchema::IfcProduct* prod, const filter_t& pred) const { IfcSchema::IfcProduct* parent, *current = prod; - while ((parent = dynamic_cast(IfcGeom::Kernel::get_decomposing_entity(current))) != 0) { + while ((parent = dynamic_cast(IfcGeom::Kernel::get_decomposing_entity(current, traverse_openings))) != 0) { if (pred(parent)) { return true; } @@ -248,11 +250,9 @@ namespace IfcGeom struct entity_filter : public filter { entity_filter() {} - entity_filter(bool include, bool traverse/*, const std::set& types*/) + entity_filter(bool include, bool traverse) : filter(include, traverse) - { - //populate(types); - } + {} std::set values; diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index dc0a98e213..d84052b2a6 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -1739,33 +1739,33 @@ IfcGeom::BRepElement

* IfcGeom::Kernel::create_brep_for_processed_representati ); } -IfcSchema::IfcObjectDefinition* IfcGeom::Kernel::get_decomposing_entity(IfcSchema::IfcProduct* product) { +IfcSchema::IfcObjectDefinition* IfcGeom::Kernel::get_decomposing_entity(IfcSchema::IfcProduct* product, bool include_openings) { IfcSchema::IfcObjectDefinition* parent = 0; // In case of an opening element, parent to the RelatingBuildingElement - if ( product->is(IfcSchema::Type::IfcOpeningElement ) ) { + if (include_openings && product->is(IfcSchema::Type::IfcOpeningElement)) { IfcSchema::IfcOpeningElement* opening = (IfcSchema::IfcOpeningElement*)product; IfcSchema::IfcRelVoidsElement::list::ptr voids = opening->VoidsElements(); - if ( voids->size() ) { + if (voids->size()) { IfcSchema::IfcRelVoidsElement* ifc_void = *voids->begin(); parent = ifc_void->RelatingBuildingElement(); } - } else if ( product->is(IfcSchema::Type::IfcElement ) ) { + } else if (product->is(IfcSchema::Type::IfcElement)) { IfcSchema::IfcElement* element = (IfcSchema::IfcElement*)product; IfcSchema::IfcRelFillsElement::list::ptr fills = element->FillsVoids(); // In case of a RelatedBuildingElement parent to the opening element - if ( fills->size() ) { - for ( IfcSchema::IfcRelFillsElement::list::it it = fills->begin(); it != fills->end(); ++ it ) { + if (fills->size() && include_openings) { + for (IfcSchema::IfcRelFillsElement::list::it it = fills->begin(); it != fills->end(); ++ it) { IfcSchema::IfcRelFillsElement* fill = *it; IfcSchema::IfcObjectDefinition* ifc_objectdef = fill->RelatingOpeningElement(); - if ( product == ifc_objectdef ) continue; + if (product == ifc_objectdef) continue; parent = ifc_objectdef; } } // Else simply parent to the containing structure if (!parent) { IfcSchema::IfcRelContainedInSpatialStructure::list::ptr parents = element->ContainedInStructure(); - if ( parents->size() ) { + if (parents->size()) { IfcSchema::IfcRelContainedInSpatialStructure* container = *parents->begin(); parent = container->RelatingStructure(); } From 0ae1c907970312c71f81c8656e3023772078ccba Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 29 Mar 2019 09:31:39 +0100 Subject: [PATCH 42/52] --ignore-whitespace in patch Fixes #565 --- win/build-deps.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/build-deps.cmd b/win/build-deps.cmd index afc47cb8f5..b691332345 100644 --- a/win/build-deps.cmd +++ b/win/build-deps.cmd @@ -290,7 +290,7 @@ if not %ERRORLEVEL%==0 goto :Error findstr IfcOpenShell "%DEPENDENCY_DIR%\CMakeLists.txt">NUL if not %ERRORLEVEL%==0 ( pushd "%DEPENDENCY_DIR%" - git apply ""%~dp0patches\%OCCT_VER%.patch" + git apply --ignore-whitespace ""%~dp0patches\%OCCT_VER%.patch" popd ) findstr IfcOpenShell "%DEPENDENCY_DIR%\CMakeLists.txt">NUL From 45c3c27fb534db69d915781ec56f26b52836ad1d Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 3 Apr 2019 13:55:29 +0200 Subject: [PATCH 43/52] Fixes for mapping declaration subtypes to SWIG --- src/ifcwrap/utils/type_conversion.i | 14 +++++++++++++- src/ifcwrap/utils/typemaps_out.i | 10 +--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/ifcwrap/utils/type_conversion.i b/src/ifcwrap/utils/type_conversion.i index 52c4ce1c4e..cbbb479110 100644 --- a/src/ifcwrap/utils/type_conversion.i +++ b/src/ifcwrap/utils/type_conversion.i @@ -106,6 +106,18 @@ // Conversion functions to convert STL vectors into Python objects %{ + swig_type_info* declaration_type_to_swig(const IfcParse::declaration* t) { + if (t->as_entity()) { + return SWIGTYPE_p_IfcParse__entity; + } else if (t->as_type_declaration()) { + return SWIGTYPE_p_IfcParse__type_declaration; + } else if (t->as_select_type()) { + return SWIGTYPE_p_IfcParse__select_type; + } else if (t->as_enumeration_type()) { + return SWIGTYPE_p_IfcParse__enumeration_type; + } + } + PyObject* pythonize(const int& t) { return PyInt_FromLong(t); } PyObject* pythonize(const unsigned int& t) { return PyInt_FromLong(t); } PyObject* pythonize(const bool& t) { return PyBool_FromLong(t); } @@ -115,7 +127,7 @@ PyObject* pythonize(const IfcParse::attribute* t) { return SWIG_NewPointerObj(SWIG_as_voidptr(t), SWIGTYPE_p_IfcParse__attribute, 0); } PyObject* pythonize(const IfcParse::inverse_attribute* t) { return SWIG_NewPointerObj(SWIG_as_voidptr(t), SWIGTYPE_p_IfcParse__inverse_attribute, 0); } PyObject* pythonize(const IfcParse::entity* t) { return SWIG_NewPointerObj(SWIG_as_voidptr(t), SWIGTYPE_p_IfcParse__entity, 0); } - PyObject* pythonize(const IfcParse::declaration* t) { return SWIG_NewPointerObj(SWIG_as_voidptr(t), SWIGTYPE_p_IfcParse__declaration, 0); } + PyObject* pythonize(const IfcParse::declaration* t) { return SWIG_NewPointerObj(SWIG_as_voidptr(t), declaration_type_to_swig(t), 0); } // NB: This cannot be temporary as a Python object is constructed from a pointer to the address of this object PyObject* pythonize(const IfcGeom::Material& t) { return SWIG_NewPointerObj(SWIG_as_voidptr(&t), SWIGTYPE_p_IfcGeom__Material, 0); } diff --git a/src/ifcwrap/utils/typemaps_out.i b/src/ifcwrap/utils/typemaps_out.i index 338898db69..fbb12ed7da 100644 --- a/src/ifcwrap/utils/typemaps_out.i +++ b/src/ifcwrap/utils/typemaps_out.i @@ -11,15 +11,7 @@ } %typemap(out) IfcParse::declaration* { - if ($1->as_entity()) { - $result = SWIG_NewPointerObj(SWIG_as_voidptr($1->as_entity()), SWIGTYPE_p_IfcParse__entity, 0); - } else if ($1->as_type_declaration()) { - $result = SWIG_NewPointerObj(SWIG_as_voidptr($1->as_type_declaration()), SWIGTYPE_p_IfcParse__type_declaration, 0); - } else if ($1->as_select_type()) { - $result = SWIG_NewPointerObj(SWIG_as_voidptr($1->as_select_type()), SWIGTYPE_p_IfcParse__select_type, 0); - } else if ($1->as_enumeration_type()) { - $result = SWIG_NewPointerObj(SWIG_as_voidptr($1->as_enumeration_type()), SWIGTYPE_p_IfcParse__enumeration_type, 0); - } + $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), declaration_type_to_swig($1), 0); } %typemap(out) IfcParse::parameter_type* { From 1314209a895ad01fd4ffca49173e59ebdd1958eb Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 3 Apr 2019 14:40:09 +0200 Subject: [PATCH 44/52] Map empty aggregate to empty tuple in python --- src/ifcwrap/utils/typemaps_out.i | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ifcwrap/utils/typemaps_out.i b/src/ifcwrap/utils/typemaps_out.i index fbb12ed7da..651a8ab1d7 100644 --- a/src/ifcwrap/utils/typemaps_out.i +++ b/src/ifcwrap/utils/typemaps_out.i @@ -98,6 +98,9 @@ IfcEntityListList::ptr v = arg; $result = pythonize(v); break; } + case IfcUtil::Argument_EMPTY_AGGREGATE: { + $result = PyTuple_New(0); + break; } case IfcUtil::Argument_UNKNOWN: default: SWIG_exception(SWIG_RuntimeError,"Unknown attribute type"); From 91d10a1465281a3b2f317019a1cf08ba4689e083 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 3 Apr 2019 14:41:25 +0200 Subject: [PATCH 45/52] Provide basic validation utility in Python --- .../ifcopenshell/validate.py | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/ifcopenshell-python/ifcopenshell/validate.py diff --git a/src/ifcopenshell-python/ifcopenshell/validate.py b/src/ifcopenshell-python/ifcopenshell/validate.py new file mode 100644 index 0000000000..22e0346eb6 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/validate.py @@ -0,0 +1,103 @@ +from __future__ import print_function + +import ifcopenshell + +named_type = ifcopenshell.ifcopenshell_wrapper.named_type +aggregation_type = ifcopenshell.ifcopenshell_wrapper.aggregation_type +simple_type = ifcopenshell.ifcopenshell_wrapper.simple_type +type_declaration = ifcopenshell.ifcopenshell_wrapper.type_declaration +enumeration_type = ifcopenshell.ifcopenshell_wrapper.enumeration_type +entity_type = ifcopenshell.ifcopenshell_wrapper.entity +select_type = ifcopenshell.ifcopenshell_wrapper.select_type +attribute = ifcopenshell.ifcopenshell_wrapper.attribute + +class ValidationError(Exception): pass + +simple_type_python_mapping = { + "string": str, + "integer": int, + "real": float, + "number": float, + "boolean": bool, + "logical": bool, # still not implemented in IfcOpenShell + "binary": str # maps to a str of "0" and "1" +} + +def assert_valid_inverse(attr, val): + b1, b2 = attr.bound1(), attr.bound2() + invalid = len(val) < b1 or (b2 != -1 and len(val) > b2) + if invalid: + raise ValidationError("%r not valid for %s" % (val, attr)) + return True + +def assert_valid(attr, val): + if isinstance(attr, attribute): + attr_type = attr.type_of_attribute() + else: + attr_type = attr + + type_wrappers = (named_type,) + if not isinstance(val, ifcopenshell.entity_instance): + # If val is not an entity instance we need to + # flatten the type declaration to something that + # maps to the python types + type_wrappers += (type_declaration,) + + while isinstance(attr_type, type_wrappers): + attr_type = attr_type.declared_type() + + if isinstance(attr_type, simple_type): + invalid = type(val) != simple_type_python_mapping[attr_type.declared_type()] + elif isinstance(attr_type, (entity_type, type_declaration)): + invalid = not isinstance(val, ifcopenshell.entity_instance) or not val.is_a(attr_type.name()) + elif isinstance(attr_type, select_type): + invalid = not any(try_valid(x, val) for x in attr_type.select_list()) + elif isinstance(attr_type, enumeration_type): + invalid = val not in attr_type.enumeration_items() + elif isinstance(attr_type, aggregation_type): + b1, b2 = attr_type.bound1(), attr_type.bound2() + ty = attr_type.type_of_element() + invalid = len(val) < b1 or (b2 != -1 and len(val) > b2) or not all(assert_valid(ty, v) for v in val) + else: + raise NotImplementedError("Not impl %s %s" % (type(attr_type), attr_type)) + + if invalid: + raise ValidationError("%r not valid for %s" % (val, attr)) + + return True + +def try_valid(attr, val): + try: + return assert_valid(attr, val) + except ValidationError as e: + return False + +def validate(f): + schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(f.schema) + for inst in f: + entity = schema.declaration_by_name(inst.is_a()) + + for attr, val, is_derived in zip(entity.all_attributes(), inst, entity.derived()): + + if val is None and not (is_derived or attr.optional()): + raise Exception("Attribute %s.%s not optional" % (entity, attr)) + + if val is not None: + attr_type = attr.type_of_attribute() + try: + assert_valid(attr, val) + except ValidationError as e: + print("In", inst) + print(e) + print() + + for attr in entity.all_inverse_attributes(): + val = getattr(inst, attr.name()) + assert_valid_inverse(attr, val) + +if __name__ == "__main__": + import sys + + for fn in sys.argv[1:]: + print("Validating", fn) + validate(ifcopenshell.open(fn)) From 8a197a630556481ce11c5eb619006ec5308dafba Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 3 Apr 2019 15:08:14 +0200 Subject: [PATCH 46/52] Work on 3ds max plug-in --- cmake/CMakeLists.txt | 17 ++++++++++++----- src/ifcmax/CMakeLists.txt | 19 +++++++++++++------ src/ifcmax/IfcMax.cpp | 8 ++++++-- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index b4513c41e4..c580f5b34c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -23,6 +23,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # not necessary, but encouraged project (IfcOpenShell) +foreach(max_year RANGE 2014 2030) +set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}") +if (NOT "${max_sdk}" STREQUAL "") +MESSAGE(STATUS "Autodesk 3ds Max SDK found at ${max_sdk}") +set(HAS_MAX TRUE) +endif() +endforeach() + OPTION(UNICODE_SUPPORT "Build IfcOpenShell with Unicode support (requires ICU)." ON) OPTION(COLLADA_SUPPORT "Build IfcConvert with COLLADA support (requires OpenCOLLADA)." ON) OPTION(IFCXML_SUPPORT "Build IfcParse with ifcXML support (requires libxml2)." ON) @@ -35,8 +43,11 @@ OPTION(BUILD_GEOMSERVER "Build IfcGeomServer executable." ON) OPTION(BUILD_CONVERT "Build IfcConvert executable." ON) OPTION(USE_VLD "Use Visual Leak Detector for debugging memory leaks, MSVC-only." OFF) OPTION(USE_MMAP "Adds a command line options to parse IFC files from memory mapped files using Boost.Iostreams" OFF) -OPTION(BUILD_IFCMAX "Build IfcMax, a 3ds Max plug-in, Windows-only." OFF) +if (${HAS_MAX}) +OPTION(BUILD_IFCMAX "Build IfcMax, a 3ds Max plug-in, Windows-only." ON) +endif() OPTION(BUILD_SHARED_LIBS "Build IfcParse and IfcGeom as shared libs (SO/DLL)." OFF) + # TODO QtViewer is deprecated ATM as it uses the 0.4 API # OPTION(BUILD_QTVIEWER "Build IfcOpenShell Qt GUI Viewer (requires Qt 4 framework)." OFF) @@ -100,10 +111,6 @@ UNIFY_ENVVARS_AND_CACHE(LIBXML2_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(LIBXML2_LIBRARIES) UNIFY_ENVVARS_AND_CACHE(PCRE_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(PYTHON_EXECUTABLE) -IF(WIN32) - UNIFY_ENVVARS_AND_CACHE(THREEDS_MAX_SDK_HOME) -ENDIF() - # Set INSTALL_RPATH for target MACRO(SET_INSTALL_RPATHS _target _paths) diff --git a/src/ifcmax/CMakeLists.txt b/src/ifcmax/CMakeLists.txt index c9096f846f..7db41dc2e1 100644 --- a/src/ifcmax/CMakeLists.txt +++ b/src/ifcmax/CMakeLists.txt @@ -16,25 +16,32 @@ # along with this program. If not, see . # # # ################################################################################ +foreach(max_year RANGE 2014 2030) + +set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}") +if (NOT "${max_sdk}" STREQUAL "") INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS} ${ICU_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} ${THREEDS_MAX_SDK_HOME}/include + ${Boost_INCLUDE_DIRS} ${max_sdk}/include ) # All recent versions of 3ds Max (2014 and newer) are 64-bit only so assume lib/x64 directory LINK_DIRECTORIES(${LINK_DIRECTORIES} ${IfcOpenShell_BINARY_DIR} ${OCC_LIBRARY_DIR} ${OPENCOLLADA_LIBRARY_DIR} - ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${THREEDS_MAX_SDK_HOME}/lib/x64/Release + ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${max_sdk}/lib/x64/Release ) -ADD_LIBRARY(IfcMax SHARED IfcMax.h IfcMax.cpp) +ADD_LIBRARY(IfcMax_${max_year} SHARED IfcMax.h IfcMax.cpp) # TODO: find the minimal subset of 3dsmax libraries to reference -TARGET_LINK_LIBRARIES(IfcMax ${IFCOPENSHELL_LIBRARIES} Comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib +TARGET_LINK_LIBRARIES(IfcMax_${max_year} ${IFCOPENSHELL_LIBRARIES} Comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib flt.lib geom.lib gfx.lib gup.lib imageViewers.lib ManipSys.lib maxnet.lib Maxscrpt.lib maxutil.lib MenuMan.lib menus.lib mesh.lib MNMath.lib Paramblk2.lib particle.lib Poly.lib RenderUtil.lib tessint.lib viewfile.lib ${OPENCASCADE_LIBRARIES} ) -SET_TARGET_PROPERTIES(IfcMax PROPERTIES SUFFIX ".dli") +SET_TARGET_PROPERTIES(IfcMax_${max_year} PROPERTIES SUFFIX ".dli") -INSTALL(TARGETS IfcMax RUNTIME DESTINATION ${BINDIR}) +INSTALL(TARGETS IfcMax_${max_year} RUNTIME DESTINATION ${BINDIR}) + +endif() +endforeach() \ No newline at end of file diff --git a/src/ifcmax/IfcMax.cpp b/src/ifcmax/IfcMax.cpp index 64017f5501..6252e97353 100644 --- a/src/ifcmax/IfcMax.cpp +++ b/src/ifcmax/IfcMax.cpp @@ -24,7 +24,10 @@ #include #include "IfcMax.h" -#include "../ifcgeom/IfcGeomIterator.h" + +#include "../ifcgeom_schema_agnostic/IfcGeomIterator.h" +#include "../ifcgeom_schema_agnostic/IfcGeomMaterial.h" +#include "../ifcgeom/IfcGeomElement.h" static const int NUM_MATERIAL_SLOTS = 24; @@ -226,7 +229,8 @@ int IFCImp::DoImport(const TCHAR *name, ImpInterface *impitfc, Interface *itfc, const char* fn_mb = name; #endif - IfcGeom::Iterator iterator(settings, fn_mb); + IfcParse::IfcFile file(fn_mb); + IfcGeom::Iterator iterator(settings, &file); delete fn_mb; if (!iterator.initialize()) return false; From f0fa9ca736ea8988ef3c75483c42deb56c6e492f Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 5 Apr 2019 11:18:22 +0200 Subject: [PATCH 47/52] Install python module files using glob --- src/ifcwrap/CMakeLists.txt | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/ifcwrap/CMakeLists.txt b/src/ifcwrap/CMakeLists.txt index cec3302f6a..858d1ff9d3 100644 --- a/src/ifcwrap/CMakeLists.txt +++ b/src/ifcwrap/CMakeLists.txt @@ -78,28 +78,17 @@ IF(PYTHONINTERP_FOUND AND NOT "${PYTHON_EXECUTABLE}" STREQUAL "") IF("${python_package_dir}" STREQUAL "") MESSAGE(WARNING "Unable to locate Python site-package directory, unable to install the Python wrapper") ELSE() - INSTALL(FILES - "${CMAKE_BINARY_DIR}/ifcwrap/ifcopenshell_wrapper.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/__init__.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/entity_instance.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/file.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/guid.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/main.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/template.py" - DESTINATION "${python_package_dir}/ifcopenshell") - INSTALL(FILES - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/__init__.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/app.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/code_editor_pane.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/main.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/geom/occ_utils.py" - DESTINATION "${python_package_dir}/ifcopenshell/geom") - INSTALL(FILES - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/mvd/__init__.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/mvd/sparql.py" - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/mvd/mvdxml_expression.py" - DESTINATION "${python_package_dir}/ifcopenshell/mvd") - INSTALL(TARGETS _ifcopenshell_wrapper DESTINATION "${python_package_dir}/ifcopenshell") + FILE(GLOB_RECURSE sourcefiles "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/*.py") + FOREACH(file ${sourcefiles}) + FILE(RELATIVE_PATH relative "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/" "${file}") + GET_FILENAME_COMPONENT(dir "${relative}" DIRECTORY) + INSTALL(FILES "${file}" + DESTINATION "${python_package_dir}/ifcopenshell/${dir}") + ENDFOREACH() + INSTALL(FILES "${CMAKE_BINARY_DIR}/ifcwrap/ifcopenshell_wrapper.py" + DESTINATION "${python_package_dir}/ifcopenshell") + INSTALL(TARGETS _ifcopenshell_wrapper + DESTINATION "${python_package_dir}/ifcopenshell") ENDIF() ELSE() MESSAGE(WARNING "No Python interpreter found, unable to install the Python wrapper") From 013b7a763d928187e220df28db27bff1cd6f642f Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 9 Apr 2019 17:03:24 +0200 Subject: [PATCH 48/52] Some fixes to make sure that non-planar faces get explicitly triangulated --- src/ifcgeom/IfcGeom.h | 2 +- src/ifcgeom/IfcGeomFaces.cpp | 2 -- src/ifcgeom/IfcGeomFunctions.cpp | 19 ++++++++++++++++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/ifcgeom/IfcGeom.h b/src/ifcgeom/IfcGeom.h index c6e3c7692d..efa9f715a3 100644 --- a/src/ifcgeom/IfcGeom.h +++ b/src/ifcgeom/IfcGeom.h @@ -317,7 +317,7 @@ public: void remove_collinear_points_from_loop(TColgp_SequenceOfPnt& polygon, bool closed, double tol=-1.); bool wire_to_sequence_of_point(const TopoDS_Wire&, TColgp_SequenceOfPnt&); void sequence_of_point_to_wire(const TColgp_SequenceOfPnt&, TopoDS_Wire&, bool closed); - bool approximate_plane_through_wire(const TopoDS_Wire&, gp_Pln&); + bool approximate_plane_through_wire(const TopoDS_Wire&, gp_Pln&, double eps=-1.); bool flatten_wire(TopoDS_Wire&); bool triangulate_wire(const TopoDS_Wire&, TopTools_ListOfShape&); bool wire_intersections(const TopoDS_Wire & wire, TopTools_ListOfShape & wires); diff --git a/src/ifcgeom/IfcGeomFaces.cpp b/src/ifcgeom/IfcGeomFaces.cpp index 6ba4746f42..b44121e657 100644 --- a/src/ifcgeom/IfcGeomFaces.cpp +++ b/src/ifcgeom/IfcGeomFaces.cpp @@ -199,8 +199,6 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) { for (; exp.More(); exp.Next(), count++) { if (count < 2) { edges[count] = TopoDS::Edge(exp.Current()); - } else { - break; } } diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index f5afab6017..676ddae0e8 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -3077,12 +3077,15 @@ bool IfcGeom::Kernel::is_identity_transform(IfcUtil::IfcBaseClass* l) { } } -bool IfcGeom::Kernel::approximate_plane_through_wire(const TopoDS_Wire& wire, gp_Pln& plane) { +bool IfcGeom::Kernel::approximate_plane_through_wire(const TopoDS_Wire& wire, gp_Pln& plane, double eps) { // Newell's Method is used for the normal calculation // as a simple edge cross product can give opposite results // for a concave face boundary. // Reference: Graphics Gems III p. 231 + const double eps_ = eps < 1. ? getValue(GV_PRECISION) : eps; + const double eps2 = eps_ * eps_; + double x = 0, y = 0, z = 0; gp_Pnt current, previous, first; gp_XYZ center; @@ -3122,8 +3125,18 @@ bool IfcGeom::Kernel::approximate_plane_through_wire(const TopoDS_Wire& wire, gp if (n < 3) { return false; } - + plane = gp_Pln(center / n, gp_Dir(x, y, z)); + + exp.Init(wire); + for (; exp.More(); exp.Next()) { + const TopoDS_Vertex& v = exp.CurrentVertex(); + current = BRep_Tool::Pnt(v); + if (plane.SquareDistance(current) > eps2) { + return false; + } + } + return true; } @@ -3161,7 +3174,7 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS typedef std::pair uv_node; gp_Pln pln; - if (!approximate_plane_through_wire(wire, pln)) { + if (!approximate_plane_through_wire(wire, pln, std::numeric_limits::infinity())) { return false; } From 80bdb36ccc02209a2f1d240630692958e75d92d2 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 9 Apr 2019 17:09:27 +0200 Subject: [PATCH 49/52] Reduce face triangulation message severity to warning --- src/ifcgeom/IfcGeomFaces.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeom/IfcGeomFaces.cpp b/src/ifcgeom/IfcGeomFaces.cpp index b44121e657..4578d0e7a2 100644 --- a/src/ifcgeom/IfcGeomFaces.cpp +++ b/src/ifcgeom/IfcGeomFaces.cpp @@ -304,7 +304,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) { delete mf; if (non_planar && bounds->size() == 1 && face_surface.IsNull()) { - Logger::Message(Logger::LOG_ERROR, "Triangulating face boundary", bound); + Logger::Message(Logger::LOG_WARNING, "Triangulating face boundary", bound); // When creating a solid, flatting the boundary only postpones the issue to // creating a topological manifold out of the individual faces. From 71118fb126dd1a22acd7496102e9ab9f3c99bc6c Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 24 Apr 2019 16:32:06 +0200 Subject: [PATCH 50/52] Retain topology information when triangulating face boundaries. #574 --- src/ifcgeom/IfcGeom.h | 5 + src/ifcgeom/IfcGeomFaces.cpp | 26 +-- src/ifcgeom/IfcGeomFunctions.cpp | 320 +++++++++++++++++++++++++++---- src/ifcgeom/IfcGeomShapes.cpp | 70 +++---- 4 files changed, 344 insertions(+), 77 deletions(-) diff --git a/src/ifcgeom/IfcGeom.h b/src/ifcgeom/IfcGeom.h index efa9f715a3..0031218f1a 100644 --- a/src/ifcgeom/IfcGeom.h +++ b/src/ifcgeom/IfcGeom.h @@ -122,6 +122,7 @@ private: std::map vertex_mapping_; std::map, TopoDS_Edge> edges_; double eps_; + bool non_manifold_; template void loop_(IfcSchema::IfcCartesianPoint::list::ptr& ps, const Fn& callback) { @@ -149,6 +150,9 @@ private: ~faceset_helper(); + bool non_manifold() const { return non_manifold_; } + bool& non_manifold() { return non_manifold_; } + bool edge(const IfcSchema::IfcCartesianPoint* a, const IfcSchema::IfcCartesianPoint* b, TopoDS_Edge& e) { int A = vertex_mapping_[a->data().id()]; int B = vertex_mapping_[b->data().id()]; @@ -190,6 +194,7 @@ private: if (kernel_->wire_intersections(wire, results)) { Logger::Warning("Self-intersections with " + boost::lexical_cast(results.Extent()) + " cycles detected", loop); kernel_->select_largest(results, wire); + non_manifold_ = true; } return true; diff --git a/src/ifcgeom/IfcGeomFaces.cpp b/src/ifcgeom/IfcGeomFaces.cpp index 4578d0e7a2..b2e4d92749 100644 --- a/src/ifcgeom/IfcGeomFaces.cpp +++ b/src/ifcgeom/IfcGeomFaces.cpp @@ -95,6 +95,8 @@ #include #include +#include + #ifdef USE_IFC4 #include #include @@ -243,22 +245,19 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) { // @todo is this still relevant considering the code above mf = new BRepBuilderAPI_MakeFace(pln, wire, true); } else { - mf = new BRepBuilderAPI_MakeFace(wire); + BRepLib_FindSurface fs(wire, getValue(GV_PRECISION), true, true); + if (fs.Found()) { + mf = new BRepBuilderAPI_MakeFace(fs.Surface(), wire); + ShapeFix_ShapeTolerance ftol; + ftol.SetTolerance(wire, fs.ToleranceReached(), TopAbs_WIRE); + } } } else { /// @todo check necessity of false here - mf = new BRepBuilderAPI_MakeFace(face_surface, wire, false); - } + mf = new BRepBuilderAPI_MakeFace(face_surface, wire, false); + } - /* BRepBuilderAPI_FaceError er = mf->Error(); - if (er == BRepBuilderAPI_NotPlanar) { - ShapeFix_ShapeTolerance FTol; - FTol.SetTolerance(wire, getValue(GV_PRECISION), TopAbs_WIRE); - delete mf; - mf = new BRepBuilderAPI_MakeFace(wire); - } */ - - if (mf->IsDone()) { + if (mf && mf->IsDone()) { TopoDS_Face outer_face_bound = mf->Face(); // In case of (non-planar) face surface, p-curves need to be computed. @@ -300,7 +299,8 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) { success = true; } } else { - const bool non_planar = mf->Error() == BRepBuilderAPI_NotPlanar; + // if mf == nullptr, it means we failed to find a surface earlier using BRepLib_FindSurface + const bool non_planar = mf == nullptr || mf->Error() == BRepBuilderAPI_NotPlanar; delete mf; if (non_planar && bounds->size() == 1 && face_surface.IsNull()) { diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index 676ddae0e8..3b352cbca6 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -108,6 +108,8 @@ #include #include +#include + #include #include @@ -140,6 +142,7 @@ #include +#include #include #include @@ -314,6 +317,124 @@ namespace { return M; } + class points_on_planar_face_generator { + private: + const TopoDS_Face& f_; + Handle(Geom_Surface) plane_; + BRepTopAdaptor_FClass2d cls_; + double u0, u1, v0, v1; + int i, j; + static const int N = 10; + + public: + points_on_planar_face_generator(const TopoDS_Face& f) + : f_(f) + , plane_(BRep_Tool::Surface(f_)) + , cls_(f_, BRep_Tool::Tolerance(f_)) + , i(0), j(0) + { + BRepTools::UVBounds(f_, u0, u1, v0, v1); + } + + void reset() { + i = j = 0; + } + + bool operator()(gp_Pnt& p) { + while (j < N) { + double u = u0 + (u1 - u0) * i / N; + double v = v0 + (v1 - v0) * j / N; + + i++; + if (i == N) { + i = 0; + j++; + } + + // Specifically does not consider ON + if (cls_.Perform(gp_Pnt2d(u, v)) == TopAbs_IN) { + plane_->D0(u, v, p); + return true; + } + } + + return false; + } + }; + + double min_face_face_distance(const TopoDS_Shape& a, double max_search) { + /* + NB: This is currently only implemented for planar surfaces. + */ + double M = std::numeric_limits::infinity(); + + TopTools_IndexedMapOfShape faces; + + TopExp::MapShapes(a, TopAbs_FACE, faces); + + IfcGeom::impl::tree tree; + + // Add edges to tree + for (int i = 1; i <= faces.Extent(); ++i) { + if (BRep_Tool::Surface(TopoDS::Face(faces(i)))->DynamicType() == STANDARD_TYPE(Geom_Plane)) { + tree.add(i, faces(i)); + } + } + + for (int j = 1; j <= faces.Extent(); ++j) { + const TopoDS_Face& f = TopoDS::Face(faces(j)); + const Handle(Geom_Surface)& fs = BRep_Tool::Surface(f); + + if (fs->DynamicType() != STANDARD_TYPE(Geom_Plane)) { + continue; + } + + points_on_planar_face_generator pgen(f); + + Bnd_Box b; + BRepBndLib::AddClose(f, b); + b.Enlarge(max_search); + + std::vector edge_idxs = tree.select_box(b, false); + std::vector::const_iterator it = edge_idxs.begin(); + for (; it != edge_idxs.end(); ++it) { + if (*it == j) { + continue; + } + + const TopoDS_Face& g = TopoDS::Face(faces(*it)); + const Handle(Geom_Surface)& gs = BRep_Tool::Surface(g); + + auto p0 = Handle(Geom_Plane)::DownCast(fs); + auto p1 = Handle(Geom_Plane)::DownCast(gs); + + if (p0->Position().IsCoplanar(p1->Position(), max_search, asin(max_search))) { + pgen.reset(); + + BRepTopAdaptor_FClass2d cls(g, BRep_Tool::Tolerance(g)); + + gp_Pnt test; + while (pgen(test)) { + gp_Vec d = test.XYZ() - p1->Position().Location().XYZ(); + double u = d.Dot(p1->Position().XDirection()); + double v = d.Dot(p1->Position().YDirection()); + + if (cls.Perform(gp_Pnt2d(u, v)) == TopAbs_IN) { + gp_Pnt test2; + p1->D0(u, v, test2); + double w = gp_Vec(p1->Position().Direction().XYZ()).Dot(test2.XYZ() - test.XYZ()); + if (w < M) { + M = w; + } + } + } + } + } + } + + return M; + } + void bounding_box_overlap(double p, const TopoDS_Shape& a, const TopTools_ListOfShape& b, TopTools_ListOfShape& c) { Bnd_Box A; BRepBndLib::Add(a, A); @@ -336,6 +457,17 @@ namespace { } } } + +#ifdef UNIFY_OPERANDS + TopoDS_Shape unify(const TopoDS_Shape& s) { + ShapeUpgrade_UnifySameDomain usd(s); + usd.SetLinearTolerance(Precision::Confusion() * 10.); + usd.SetAngularTolerance(Precision::Angular() * 10.); + usd.Build(); + return usd.Shape(); + } +#endif + } bool IfcGeom::Kernel::create_solid_from_compound(const TopoDS_Shape& compound, TopoDS_Shape& shape) { @@ -369,17 +501,19 @@ bool IfcGeom::Kernel::create_solid_from_faces(const TopTools_ListOfShape& face_l bool has_shared_edges = false; TopTools_MapOfShape edge_set; - for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { - // As soon as is detected one of the edges is shared, the assumption is made no - // additional sewing is necessary. - if (!has_shared_edges) { - TopExp_Explorer exp(face_iterator.Value(), TopAbs_EDGE); - for (; exp.More(); exp.Next()) { - if (edge_set.Contains(exp.Current())) { - has_shared_edges = true; - break; + if (!faceset_helper_ || !faceset_helper_->non_manifold()) { + for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { + // As soon as is detected one of the edges is shared, the assumption is made no + // additional sewing is necessary. + if (!has_shared_edges) { + TopExp_Explorer exp(face_iterator.Value(), TopAbs_EDGE); + for (; exp.More(); exp.Next()) { + if (edge_set.Contains(exp.Current())) { + has_shared_edges = true; + break; + } + edge_set.Add(exp.Current()); } - edge_set.Add(exp.Current()); } } } @@ -3169,7 +3303,11 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS // alternatively we use the regular OCCT incremental mesher on a new face // created from the UV coordinates of the original wire. Pray to our gods // that the vertex coordinates are unaffected by the meshing algorithm and - // map them back to 3d coordinates when iterating over the mesh triangles. + // map them back to 3d coordinates when iterating over the mesh triangles. + + // In addition, to maintain a manifold shell, we need to make sure that + // every edge from the input wire is used exactly once in the list of + // resulting faces. And that other internal edges are used twice. typedef std::pair uv_node; @@ -3184,15 +3322,35 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS BRepTools_WireExplorer exp(wire); BRepBuilderAPI_MakePolygon mp; - std::map mapping; + std::map mapping; + std::map, TopoDS_Edge> existing_edges, new_edges; // Add UV coordinates to a newly created polygon for (; exp.More(); exp.Next()) { - gp_Pnt p = BRep_Tool::Pnt(exp.CurrentVertex()); + // Project onto plane + const TopoDS_Vertex& V = exp.CurrentVertex(); + gp_Pnt p = BRep_Tool::Pnt(V); double u = (p.XYZ() - pnt).Dot(udir); double v = (p.XYZ() - pnt).Dot(vdir); - mp.Add(gp_Pnt(u, v, 0)); - mapping.insert(std::make_pair(std::make_pair(u, v), p)); + mp.Add(gp_Pnt(u, v, 0.)); + + mapping.insert(std::make_pair(std::make_pair(u, v), V)); + + // Store existing edges in a map so that triangles can + // actually reference the preexisting edges. + const TopoDS_Edge& e = exp.Current(); + TopoDS_Vertex V0, V1; + TopExp::Vertices(e, V0, V1, true); + gp_Pnt p0 = BRep_Tool::Pnt(V0); + gp_Pnt p1 = BRep_Tool::Pnt(V1); + double u0 = (p0.XYZ() - pnt).Dot(udir); + double v0 = (p0.XYZ() - pnt).Dot(vdir); + double u1 = (p1.XYZ() - pnt).Dot(udir); + double v1 = (p1.XYZ() - pnt).Dot(vdir); + uv_node uv0 = std::make_pair(u0, v0); + uv_node uv1 = std::make_pair(u1, v1); + existing_edges.insert(std::make_pair(std::make_pair(uv0, uv1), e)); + existing_edges.insert(std::make_pair(std::make_pair(uv1, uv0), TopoDS::Edge(e.Reversed()))); } // Not closed by default @@ -3205,7 +3363,7 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS int n123[3]; TopLoc_Location loc; Handle_Poly_Triangulation tri = BRep_Tool::Triangulation(face, loc); - + if (!tri.IsNull()) { const TColgp_Array1OfPnt& nodes = tri->Nodes(); @@ -3216,20 +3374,49 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS else triangles(i).Get(n123[0], n123[1], n123[2]); // Create polygons from the mesh vertices - BRepBuilderAPI_MakePolygon mp2; + BRepBuilderAPI_MakeWire mp2; for (int j = 0; j < 3; ++j) { - const gp_Pnt& uv = nodes.Value(n123[j]); - uv_node key = std::make_pair(uv.X(), uv.Y()); + + uv_node uvnodes[2]; + TopoDS_Vertex vs[2]; - if (mapping.find(key) == mapping.end()) { - Logger::Error("Internal error: unable to unproject uv-mesh"); - return false; + for (int k = 0; k < 2; ++k) { + const gp_Pnt& uv = nodes.Value(n123[(j + k) % 3]); + uvnodes[k] = std::make_pair(uv.X(), uv.Y()); + + auto it = mapping.find(uvnodes[k]); + if (it == mapping.end()) { + Logger::Error("Internal error: unable to unproject uv-mesh"); + return false; + } + + vs[k] = it->second; } - const gp_Pnt& p = mapping.find(key)->second; - mp2.Add(p); + auto it = existing_edges.find(std::make_pair(uvnodes[0], uvnodes[1])); + if (it != existing_edges.end()) { + // This is a boundary edge, reuse existing edge from wire + mp2.Add(it->second); + } else { + auto jt = new_edges.find(std::make_pair(uvnodes[0], uvnodes[1])); + if (jt != new_edges.end()) { + // We have already added the reverse as part of another + // triangle, reuse this edge. + mp2.Add(TopoDS::Edge(jt->second)); + } else { + // This is a new internal edge. Register the reverse + // for reuse later. We need to be sure to reuse vertices + // for the edge construction because otherwise the wire + // builder will use geometrical proximity for vertex + // connections in which case the edge will be copied + // and no longer partner with other edges from the shell. + TopoDS_Edge ne = BRepBuilderAPI_MakeEdge(vs[0], vs[1]); + mp2.Add(ne); + // Store the reverse to be picked up later. + new_edges.insert(std::make_pair(std::make_pair(uvnodes[1], uvnodes[0]), TopoDS::Edge(ne.Reversed()))); + } + } } - mp2.Close(); BRepBuilderAPI_MakeFace mf(mp2.Wire()); if (mf.IsDone()) { @@ -3242,6 +3429,42 @@ bool IfcGeom::Kernel::triangulate_wire(const TopoDS_Wire& wire, TopTools_ListOfS } } faces.Append(triangle_face); + } else { + Logger::Error("Internal error: missing face"); + return false; + } + } + } + + TopTools_IndexedDataMapOfShapeListOfShape mape, mapn; + TopExp::MapShapesAndAncestors(wire, TopAbs_EDGE, TopAbs_WIRE, mape); + TopTools_ListIteratorOfListOfShape it(faces); + for (; it.More(); it.Next()) { + TopExp::MapShapesAndAncestors(it.Value(), TopAbs_EDGE, TopAbs_WIRE, mapn); + } + + // Validation + + for (int i = 1; i <= mape.Extent(); ++i) { + TopTools_ListOfShape val; + if (!mapn.FindFromKey(mape.FindKey(i), val)) { + // All existing edges need to exist in the new faces + Logger::Error("Internal error, missing edge from triangulation"); + if (faceset_helper_ != nullptr) { + faceset_helper_->non_manifold() = true; + } + } + } + + for (int i = 1; i <= mapn.Extent(); ++i) { + const TopoDS_Shape& v = mapn.FindKey(i); + int n = mapn.FindFromIndex(i).Extent(); + // Existing edges are boundaries with use 1 + // New edges are internal with use 2 + if (n != (mape.Contains(v) ? 1 : 2)) { + Logger::Error("Internal error, non-manifold result from triangulation"); + if (faceset_helper_ != nullptr) { + faceset_helper_->non_manifold() = true; } } } @@ -3686,7 +3909,23 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopoDS_Shap return succesful; } #else -bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopTools_ListOfShape& b_, BOPAlgo_Operation op, TopoDS_Shape& result, double fuzziness) { + +bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a_, const TopTools_ListOfShape& b__, BOPAlgo_Operation op, TopoDS_Shape& result, double fuzziness) { + +#ifdef UNIFY_OPERANDS + TopoDS_Shape a = unify(a_); + TopTools_ListOfShape b_; + { + TopTools_ListIteratorOfListOfShape it(b__); + for (; it.More(); it.Next()) { + b_.Append(unify(it.Value())); + } + } +#else + const TopoDS_Shape& a = a_; + const TopTools_ListOfShape& b_ = b__; +#endif + bool success = false; BRepAlgoAPI_BooleanOperation* builder; TopTools_ListOfShape B, b; @@ -3764,14 +4003,25 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopTools_Li // when there are edges or vertex-edge distances close to the used fuzziness, the // output is not trusted and the operation is attempted with a higher fuzziness. - double min_lengh_result = (std::min)(min_edge_length(r), min_vertex_edge_distance(r, getValue(GV_PRECISION), fuzziness * 10.)); - success = min_lengh_result <= min_length_orig || min_lengh_result > fuzziness * 10.; - + int reason = 0; + double v; + if ((v = min_edge_length(r)) < fuzziness * 10.) { + reason = 0; + success = false; + } else if ((v = min_vertex_edge_distance(r, getValue(GV_PRECISION), fuzziness * 10.)) < fuzziness * 10.) { + reason = 1; + success = false; + } else if ((v = min_face_face_distance(r, fuzziness * 10.)) < fuzziness * 10.) { + reason = 2; + success = false; + } + if (success) { result = r; } else { + static const char* const reason_strings[] = { "edge length", "vertex-edge", "face-face" }; std::stringstream str; - str << "Boolean operation result failing interference check, with fuzziness " << fuzziness << " min length " << min_lengh_result << " originally " << min_length_orig; + str << "Boolean operation result failing " << reason_strings[reason] << " interference check, with fuzziness " << fuzziness << " with length " << v; Logger::Notice(str.str()); } } else { @@ -3792,9 +4042,11 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a, const TopTools_Li delete builder; if (!success) { const double new_fuzziness = fuzziness * 10.; - if (new_fuzziness + 1e-15 <= getValue(GV_PRECISION) * 1000. && new_fuzziness < min_length_orig) { + if (new_fuzziness - 1e-15 <= getValue(GV_PRECISION) * 10000. && new_fuzziness < min_length_orig) { return boolean_operation(a, b, op, result, new_fuzziness); - } + } else { + Logger::Notice("No longer attempting boolean operation with higher fuzziness"); + } } return success; } @@ -3834,6 +4086,7 @@ IfcGeom::Kernel::faceset_helper::~faceset_helper() { IfcGeom::Kernel::faceset_helper::faceset_helper(Kernel* kernel, const IfcSchema::IfcConnectedFaceSet* l) : kernel_(kernel) + , non_manifold_(false) { kernel->faceset_helper_ = this; @@ -3858,6 +4111,9 @@ IfcGeom::Kernel::faceset_helper::faceset_helper(Kernel* kernel, const IfcSchema: } } + // Use the bbox diagonal to influence local epsilon + // double bdiff = std::sqrt(box.SquareExtent()); + // Find the minimal bounding box edge double bmin[3], bmax[3]; box.Get(bmin[0], bmin[1], bmin[2], bmax[0], bmax[1], bmax[2]); diff --git a/src/ifcgeom/IfcGeomShapes.cpp b/src/ifcgeom/IfcGeomShapes.cpp index cb05b39185..4b56eeb97a 100644 --- a/src/ifcgeom/IfcGeomShapes.cpp +++ b/src/ifcgeom/IfcGeomShapes.cpp @@ -482,9 +482,8 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape TopoDS_Wire boundary_wire; IfcSchema::IfcBooleanOperand* operand1 = l->FirstOperand(); IfcSchema::IfcBooleanOperand* operand2 = l->SecondOperand(); - bool is_halfspace = operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class()); - bool is_unbounded_halfspace = is_halfspace && !operand2->declaration().is(IfcSchema::IfcPolygonalBoundedHalfSpace::Class()); - + bool has_halfspace_operand = false; + BOPAlgo_Operation occ_op; const IfcSchema::IfcBooleanOperator::Value op = l->Operator(); @@ -501,7 +500,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape std::vector second_operands; second_operands.push_back(operand2); - if (occ_op == BOPAlgo_CUT && !is_halfspace) { + if (occ_op == BOPAlgo_CUT) { bool process_as_list = true; while (true) { auto res1 = operand1->as(); @@ -520,6 +519,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape if (!process_as_list) { operand1 = l->FirstOperand(); + second_operands = { operand2 }; } } @@ -547,47 +547,53 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape for (auto& operand2 : second_operands) { bool shape2_processed = false; - if (shape_type(operand2) == ST_SHAPELIST) { - shape2_processed = convert_shapes(operand2, items2) && flatten_shape_list(items2, s2, true); - } else if (shape_type(operand2) == ST_SHAPE) { - shape2_processed = convert_shape(operand2, s2); - if (shape2_processed && !is_halfspace) { - TopoDS_Solid temp_solid; - s2 = ensure_fit_for_subtraction(s2, temp_solid); + + bool is_halfspace = operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class()); + bool is_unbounded_halfspace = is_halfspace && !operand2->declaration().is(IfcSchema::IfcPolygonalBoundedHalfSpace::Class()); + has_halfspace_operand |= is_halfspace; + + { + if (shape_type(operand2) == ST_SHAPELIST) { + shape2_processed = convert_shapes(operand2, items2) && flatten_shape_list(items2, s2, true); + } else if (shape_type(operand2) == ST_SHAPE) { + shape2_processed = convert_shape(operand2, s2); + if (shape2_processed) { + TopoDS_Solid temp_solid; + s2 = ensure_fit_for_subtraction(s2, temp_solid); + } + } else { + Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", operand2); + } + } + + if (is_unbounded_halfspace) { + TopoDS_Shape temp; + double d; + if (fit_halfspace(s1, s2, temp, d)) { + if (d < getValue(GV_PRECISION)) { + Logger::Message(Logger::LOG_WARNING, "Halfspace subtraction yields unchanged volume:", l); + continue; + } else { + s2 = temp; + } } - } else { - Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", operand2); } if (!shape2_processed) { - Logger::Message(Logger::LOG_ERROR, "Failed to convert SecondOperand of:", l); + Logger::Message(Logger::LOG_ERROR, "Failed to convert SecondOperand:", operand2); continue; } - if (!is_halfspace) { + if (operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class())) { const double second_operand_volume = shape_volume(s2); - if (second_operand_volume <= ALMOST_ZERO) + if (second_operand_volume <= ALMOST_ZERO) { Logger::Message(Logger::LOG_WARNING, "Empty solid for:", operand2); + } } second_operand_shapes.Append(s2); } - if (is_unbounded_halfspace) { - TopoDS_Shape temp; - double d; - if (fit_halfspace(s1, s2, temp, d)) { - if (d < getValue(GV_PRECISION)) { - Logger::Message(Logger::LOG_WARNING, "Subtraction yields unchanged volume:", l); - shape = s1; - return true; - } else { - s2 = temp; - second_operand_shapes.Append(s2); - } - } - } - /* // TK: A little debugging trick to output both operands for visual inspection @@ -603,7 +609,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape #if OCC_VERSION_HEX < 0x60900 bool valid_result = boolean_operation(s1, s2, occ_op, shape); #else - const double fuzz = is_halfspace ? getValue(GV_PRECISION) * 10. : -1.; + const double fuzz = has_halfspace_operand ? getValue(GV_PRECISION) * 10. : -1.; bool valid_result = boolean_operation(s1, second_operand_shapes, occ_op, shape, fuzz); #endif From 587edca99f99790be289e3d641af9173d237ca96 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 24 Apr 2019 17:01:02 +0200 Subject: [PATCH 51/52] Don't log empty error messages from boolean op --- src/ifcgeom/IfcGeomFunctions.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index 3b352cbca6..c74c2be29e 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -4035,9 +4035,12 @@ bool IfcGeom::Kernel::boolean_operation(const TopoDS_Shape& a_, const TopTools_L #if OCC_VERSION_HEX >= 0x70000 builder->DumpErrors(str); #else - str << "Error code :" << builder->ErrorStatus(); + str << "Error code: " << builder->ErrorStatus(); #endif - Logger::Notice(str.str()); + std::string str_str = str.str(); + if (str_str.size()) { + Logger::Notice(str_str); + } } delete builder; if (!success) { From 4792fd9efe2aafdd7b6ad4d54067328041668f10 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 24 Apr 2019 17:15:18 +0200 Subject: [PATCH 52/52] Don't do brute-force edge sewing in case of non-manifold faceset from wire intersections or triangulations --- src/ifcgeom/IfcGeomFunctions.cpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index c74c2be29e..829732aad5 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -501,19 +501,22 @@ bool IfcGeom::Kernel::create_solid_from_faces(const TopTools_ListOfShape& face_l bool has_shared_edges = false; TopTools_MapOfShape edge_set; - if (!faceset_helper_ || !faceset_helper_->non_manifold()) { - for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { - // As soon as is detected one of the edges is shared, the assumption is made no - // additional sewing is necessary. - if (!has_shared_edges) { - TopExp_Explorer exp(face_iterator.Value(), TopAbs_EDGE); - for (; exp.More(); exp.Next()) { - if (edge_set.Contains(exp.Current())) { - has_shared_edges = true; - break; - } - edge_set.Add(exp.Current()); + // In case there are wire interesections or failures in non-planar wire triangulations + // the idea is to let occt do an exhaustive search of edge partners. But we have not + // found a case where this actually improves boolean ops later on. + // if (!faceset_helper_ || !faceset_helper_->non_manifold()) { + + for (face_iterator.Initialize(face_list); face_iterator.More(); face_iterator.Next()) { + // As soon as is detected one of the edges is shared, the assumption is made no + // additional sewing is necessary. + if (!has_shared_edges) { + TopExp_Explorer exp(face_iterator.Value(), TopAbs_EDGE); + for (; exp.More(); exp.Next()) { + if (edge_set.Contains(exp.Current())) { + has_shared_edges = true; + break; } + edge_set.Add(exp.Current()); } } }